标签: code-organization

您将如何组织大型复杂的Web应用程序(请参阅基本示例)?

为了让事情变得有趣并且关闭我最后的开放式问题,以一种合理的架构以良好的组织方式实现以下功能的解决方案获得了很好的赏金.完整的代码是在jsfiddle,随时问任何问题:)

您通常如何组织客户端极其丰富的复杂Web应用程序.我已经创建了一个人为的例子来表明如果对于大型应用程序来说管理不好的话,它很容易陷入混乱状态.随意修改/扩展此示例 - http://jsfiddle.net/NHyLC/1/

该示例基本上反映了SO上的评论发布部分,并遵循以下规则:

  1. 在将多个空格修剪为一个空格后,必须至少包含15个字符.
  2. 如果Add Comment单击,但在删除多个空格后大小小于15,则显示带有错误的弹出窗口.
  3. 指示剩余字符数量并使用颜色编码进行汇总.灰色表示小评论,棕色表示中等评论,橙色表示大评论,红色表示评论溢出.
  4. 一条评论只能每15秒提交一次.如果过早提交评论,请显示带有相应错误消息的弹出窗口.

我在这个例子中注意到了几个问题.

  • 理想情况下,这应该是一个小部件或某种打包的功能.
  • 每15秒评论一次,最少15个字符的评论属于某些应用程序范围的策略,而不是嵌入到每个小部件中.
  • 太多的硬编码值.
  • 没有代码组织.模型,视图,控制器都捆绑在一起.并非MVC是组织富客户端Web应用程序的唯一方法,但在此示例中没有.

你会如何清理它?沿途应用一点MVC/MVP?

这里有一些相关的函数,但如果你在jsfiddle上看到整个代码会更有意义:

/**
 * Handle comment change.
 * Update character count. 
 * Indicate progress
 */
function handleCommentUpdate(comment) {
    var status = $('.comment-status');

    status.text(getStatusText(comment));
    status.removeClass('mild spicy hot sizzling');
    status.addClass(getStatusClass(comment));
}

/**
 * Is the comment valid for submission
 * But first, check if it's all good.
 */
function commentSubmittable(comment) {
    var notTooSoon = !isTooSoon();
    var notEmpty = !isEmpty(comment);
    var hasEnoughCharacters = !isTooShort(comment);

    return notTooSoon …
Run Code Online (Sandbox Code Playgroud)

javascript design-patterns web-applications code-organization

17
推荐指数
1
解决办法
7261
查看次数

组织MATLAB类的最佳方法是什么?

MATLAB有两种组织类的方法:

@ -directories:

@ClassName\
    ClassName.m
    Method1.m
    Method2.m

单个文件:

ClassName.m:
classdef ClassName
    methods
        % all methods included here
    end
end

第一种风格在新classdef语法之前就存在了,但似乎是一种更有条理的做事方式.第二种风格(单个文件中的所有内容)都是新的.

你使用哪种方法,为什么?

oop matlab code-organization organization matlab-class

17
推荐指数
3
解决办法
6531
查看次数

在Delphi中建立一个大型软件系统

我们有一个大约16岁的软件包.几乎每个版本的Delphi(除了.NET版本)都经历过.多年来,当涉及到交叉引用并为其他软件包(如第三方库)保持正确设置时,事情变得非常混乱.我想知道在保持像这样有组织的大项目(和项目组)方面是否有一些标准做法.

那么解释当前的设置......

这是一个多应用系统.意思是,涉及12个可执行项目(以及一些DLL和服务项目).我们还将事物保存在SourceSafe中,并且多个开发人员在不同的计算机上处​​理相同的代码.所有这些项目都被更多地转移到中央文件夹中."根"文件夹中包含主要EXE项目(约20个文件夹,所有含单位和形式沿),它似乎像文件夹和文件的无尽层次.仅此一个项目就涉及50万行代码.

然后,所有其他应用程序不一定与该主要项目正确分开.这些项目中的每一个都有自己的主文件夹根目录.

我的两个主要问题是:

  • 如何正确设置DCU文件,使它们不与项目混合?不应将DCU放在SourceSafe(以及任何类似的文件)或其他任何文件中编译的文件中.Visual SourceSafe在未检出文件时使文件为只读,在这种情况下无法写入DCU文件(和EXE文件等).那么如何正确地将任何此类文件分离到远程位置以避免与源代码混合?
  • 如何正确设置包和库?我们有以下内容:
    • QuickReports 5.05
    • NativeJpg库V302 -
    • 另一个匿名报告库
    • 我们自己的组件包,需要QuickReports,NativeJpg和其他匿名库

所有这4个库都存储在每台计算机的完全不同的位置,需要一些集中化.设置每个新开发人员计算机的最大痛苦是从主要开发人员的计算机中找到它们并将它们复制到另一台计算机上的相同位置(并确保库路径正确等).

我们还需要在同一台计算机上为不同版本的Delphi保留完全独立的环境.这意味着每台计算机上的项目副本,每台计算机上的软件包和库的副本,SourceSafe中项目和软件包和库的副本等.每台计算机都需要具有相同的设置.我们已经利用环境变量来指导我们的项目在哪里寻找某些项目文件(和库).

另一个新问题:XE2引入了64位功能.我们不打算在64位编译,但我们肯定会在未来.如何在所有这些项目中正确区分32位和64位?

我真正要求的是参考一个关于如何优化这样的环境并使其组织最佳的良好教程.我不希望任何人花时间在问题中回答这一切.这些项目已超过15年,拥有来自世界各地的200多名开发人员,并且项目之间有很多交叉引用.例如,一个项目可能使用另一个项目的单位,反之亦然.我个人不喜欢这个概念,但我也没有设计它.我被赋予了使这个系统井井有条的任务,并详细记录了如何在新计算机上设置Delphi以便新开发人员处理我们的项目.当我正在查看我们的项目时(因为我不一定是系统的开发人员,但我正在开发中),我看到代码组织方式存在很多困惑.

我假设Embarcadero可能有一些关于建立这样一个环境的指导方针和标准吗?

delphi development-environment visual-sourcesafe code-organization delphi-xe2

17
推荐指数
3
解决办法
2852
查看次数

在哪里保持单元测试?

可能重复:
Python单元测试在哪里?

单元测试是保存在与代码相同的文件中,同一目录中的单独文件还是完全不同的目录中?

python unit-testing code-organization

16
推荐指数
2
解决办法
1973
查看次数

如果它们在姐妹文件夹中,如何使我的Python单元测试导入测试模块?

我仍然围绕import声明.如果我在同一级别有2个文件夹:

  1. SRC
  2. 测试

如何pytest导入模块的文件中src?有没有更好的解决方案(比如将文件夹放在另一个文件夹中?)

python directory import code-organization python-unittest

16
推荐指数
2
解决办法
1万
查看次数

组织Java常量的理想方法

我们有一个基于旧的jdk 1.4的庞大项目.我们已将Web应用程序迁移到JDK 1.6,但代码中仍然存在大量低效的实践和糟糕的设计.

关于主要的痛点点巨大的java类在单个java文件中有2500多行代码.这么多文件都是这样的.

试图通过删除常量并将常量放在不同的Constants.java文件中来重构我开始的类.但由于整个应用程序中有很多常量,因此常量文件存在增长到巨大比例的风险.

我希望得到关于开发人员采用什么策略来保持代码清洁和可维护性的反馈.

java coding-style constants code-organization

16
推荐指数
2
解决办法
9214
查看次数

推荐的源控制目录结构?

我将在新的J2EE Web应用程序上使用Subversion进行源代码控制.您建议使用什么目录结构来组织代码,测试和文档?

java svn version-control code-organization java-ee

15
推荐指数
1
解决办法
1万
查看次数

关于在C中组织代码文件的最佳文章

您能否推荐我应该阅读/学习什么才能在C中制作组织良好的代码?

我想要学习的一件事是在.h和.c文件中拆分项目的原则,在哪里和为什么,变量命名,何时使用全局变量...

我对处理这个特定问题的书籍和文章很感兴趣.

c code-organization

15
推荐指数
2
解决办法
1万
查看次数

Python开发的文件夹和文件组织

在Python开发环境中组织属于同一项目的代码的最佳方法是什么?Python项目组织的工作和做法是什么?你是否将文件中的每个类分开?

Project A
   Classes
       "subsystem1"
           class1
           class2
           subsystem1Module
       "subsystem2"
       "utils"
       "etc"
   Tests
   Whatever
   etc?
Run Code Online (Sandbox Code Playgroud)

有什么建议?哦,请描述每种类型组织的(可能)问题.

什么是组织Python代码的最佳实践?

python code-organization organization

15
推荐指数
1
解决办法
1万
查看次数

将现有文件添加到不同的Visual Studio 2010项目

可以将文件添加到位于不同目录中的visual studio项目中,但是将文件保留在这些目录中并在更新项目中的文件时更新这些文件?当我将现有文件添加到项目时,它所做的就是将它们复制到项目中,然后更新复制的文件,而不是原始文件.有没有办法让它以其他方式工作?

c# code-organization visual-studio-2010 visual-studio

15
推荐指数
1
解决办法
6581
查看次数