想象一下,您希望在Python中开发一个非平凡的最终用户桌面(而不是Web)应用程序.构建项目文件夹层次结构的最佳方法是什么?
理想的功能是易于维护,IDE友好,适用于源代码控制分支/合并,以及易于生成安装包.
特别是:
我一直非常依赖CSS来处理我正在开发的网站.现在,所有的CSS样式都是基于每个标签应用的,所以现在我试图将它移动到更多的外部样式,以帮助进行任何未来的更改.
但现在问题是我注意到我正在进行"CSS爆炸".我很难决定如何在CSS文件中最好地组织和抽象数据.
我在网站中使用大量div标签,从一个基于表格的网站转移.所以我得到了很多看起来像这样的CSS选择器:
div.title {
background-color: blue;
color: white;
text-align: center;
}
div.footer {
/* Styles Here */
}
div.body {
/* Styles Here */
}
/* And many more */
Run Code Online (Sandbox Code Playgroud)
这还不算太糟糕,但由于我是初学者,我想知道是否可以就如何最好地组织CSS文件的各个部分提出建议.我不想为我网站上的每个元素都有一个单独的CSS属性,而且我总是希望CSS文件相当直观且易于阅读.
我的最终目标是使CSS文件易于使用并展示其提高Web开发速度的能力.这样,将来可能在这个网站上工作的其他人也会参与使用良好编码实践的做法,而不是像我那样去做.
我知道实际上没有单一的正确方法.但是我发现很难创建一个运行良好的目录结构,并为每个开发人员和管理员保持干净.github上的大多数项目都有一些标准结构.但它没有显示在pc上组织其他文件和所有项目的方法.
在开发机器上组织所有这些目录最方便的方法是什么?您如何命名它们,以及如何将其连接并部署到服务器?
我想解决的问题:
我目前正在开发一个基于backbone.js构建的大型Web应用程序,并且在组织,"僵尸"等方面遇到了很多问题.所以我决定做一个主要的代码重构.我已经编写了一堆辅助函数来处理"僵尸"; 但是,我想从一开始就为代码创建一个很好的结构/组织.我没有在大型的backbone.js组织上找到很多很棒的教程/示例,所以我从头开始,想看看我是否可以就我开始的地方得到一些意见.
我显然在全局命名空间中设置了我的代码; 但我也想保持这个命名空间相当干净.我的主要app.js使类文件本身与全局命名空间分开; 您可以使用reg()函数注册一个类(以便可以实例化它),而inst()函数可以从classes数组中实例化一个类.因此,除了3种方法之外,MyApp命名空间只有路由器,模型和视图:
var MyApp = (function () {
var classes = {
Routers: {},
Collections: {},
Models: {},
Views: {}
};
methods = {
init: function () {
MyApp.Router = MyApp.inst('Routers', 'App');
MyApp.Model = MyApp.inst('Models', 'App');
MyApp.View = MyApp.inst('Views', 'App');
Backbone.history.start();
},
reg: function (type, name, C) {
classes[type][name] = C;
},
inst: function (type, C, attrs) {
return new classes[type][C](attrs || {});
}
};
return methods;
}());
$(MyApp.init);
Run Code Online (Sandbox Code Playgroud)
在模型,集合,路由器和视图中,我像往常一样工作,但是然后需要在文件的末尾注册该类,以便可以在以后实例化它(不会使命名空间混乱):
MyApp.reg('Models', 'App', Model);
Run Code Online (Sandbox Code Playgroud)
这似乎是组织代码的不必要的方式吗?其他人是否有更好的例子来说明如何使用许多路由器,集合,模型和视图组织真正的大型项目?
Visual Studio 2008是否有任何类型的插件或工具可用于按字母顺序排列方法?理想情况下,我想要一个工具,可以自动或按需按字母顺序排列选择或指定类型(即只有方法,而不是成员变量).
resharper coding-style organization visual-studio-2008 visual-studio
对于那些必须处理分布在多个源文件和头文件中的大量相互依赖的类的人,您建议使用哪些C++编码和文件组织指南?
我在我的项目中遇到这种情况,解决跨越几个头文件的类定义相关错误已经变得非常头疼.
我想知道是否有任何关于在Rails应用程序中放置非标准Ruby文件的最佳实践,哪些不适合任何默认目录(controllers/ models等).
我说的是控制器/模型等使用的类,但不是任何Rails基类的子类.包含从模型中提取的功能的类,以减少它们的负担.其中一些看起来像模型,但不是AR模型,其中一些看起来更像"服务",有些是介于两者之间或其他东西.
一些随机的例子:
我现在已经有了很多这些,其中一些被添加到lib最后作为一堆随机类和模块,一些潜入app/models.我想以某种方式组织这个,但我不知道从哪里开始.
只应该进入AR车型app/models吗?或者也可以放置任何域或帮助模型?你如何决定某件事是模特?
如果不适合的一切都app进入lib?或许我应该添加一些新的自定义子目录app?什么子目录,以及如何划分自定义类?
你如何在你的项目中处理这个?我知道每个项目都有点不同,但必须有一些相似之处.
我已经编写了我自己的通用PHP库一段时间了,我正在考虑如何组织目录结构,但我想在我正式化库的目录结构之前得到人们的想法.
这是我到目前为止:https: //github.com/homer6/altumo/tree/master/source/php
我以为我可以"按主题"或"按类别"进行.到目前为止,我只能想到一个我喜欢"按类别"的例子:Boost http://www.boost.org/doc/libs/1_46_1/?view=categorized
此外,Qt是按模块组织的,但我认为它有点乱,因为所有内容都有点填入QtCore http://qt-project.org/doc/qt-5/qtmodules.html
有任何想法吗?
提前致谢.
更新:我发现了一本非常好的书,它向我展示了许多伟大的图书馆设计惯例:http://www.apibook.com/blog/
更新:我发现了一篇有趣的文章提到了代码组织(http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html).在底部,它说:"你的代码树会是什么样子?他希望用这些词来形容它:简单,实用,优雅,正交,可组合.这是理想的,现实有点不同."
我试图围绕Xcode的文件组织 - 或者缺乏.我可以在项目中做我想做的所有事情,它看起来很棒,所有的"假"文件夹和结构.我去看文件系统和繁荣巨大的混乱.我已经尝试使用Create Folder Reference for any added folder选中的选项导入文件,并且有效.我在Xcode和文件系统中得到了我想要的结构.
问题:当我将文件添加到Xcode中作为文件夹引用的文件系统上的文件夹时,当我去看时它不在Xcode中,甚至在重新加载项目之后也没有.文件夹参考中的文件/子文件夹无法在Xcode中移动.当我在文件系统上移动它时,我在Xcode中得到红色链接(找不到文件?).
如何保持有组织的项目和文件系统?如何设置项目以识别文件夹并在我的项目中显示其(当前和最新)文件和子文件夹?
我似乎遇到的另一个问题是,如果我使用文件夹参考并更改文件,除非我进行全面清理和重建,否则我的应用程序中的文件不会更新.如果我不使用文件夹引用,我的所有文件都会被转储到应用程序包的Resource文件夹中,而不是我在项目中的漂亮结构中.
我应该关心吗?我应该只使用假文件夹,让一切都到处都不关心?我的应用程序包将是一团糟,文件系统将是一个烂摊子,但它将全部工作...我希望?
编辑:
我想要有组织的文件系统的最大原因是资源文件(图像,声音,其他数据文件等)不是在Xcode中编辑的.我必须通过文件系统在第三方应用程序中访问它们.如果它变得混乱,在其他第三方应用程序中更难找到和维护.
如果我想要一个如下所示的结构,会发生什么:
我应该使用长文件名而不是文件夹来组织吗?
我已经开始学习DDD,并想知道其他人如何组织他们的项目.
我开始组织我的AggregateRoots:
MyApp.Domain(域模型的命名空间)
MyApp.Domain.Product
- 产品
- IProductService
- IProductRepository
- 等
MyApp.Domain.Comment
- 评论
- ICommentService
- ICommentRepository
- 等
MyApp.Infrastructure
- ...
MyApp.Repositories
- ProductRepository:IProductRepository
- 等
我遇到的问题是我必须将我的域名产品称为MyApp.Domain.Product.Product或Product.Product.我也与产品的linq数据模型发生冲突....我必须使用丑陋的代码行来解析两者之间的问题,例如MyApp.Domain.Product.Product和MyApp.Respoitories.Product.
我真的很想知道其他人如何组织他们的DDD解决方案......
我使用Visual Studio作为我的IDE.
非常感谢.
organization ×10
backbone.js ×1
c++ ×1
class ×1
coding-style ×1
css ×1
directory ×1
django ×1
file ×1
filesystems ×1
header ×1
javascript ×1
jquery ×1
models ×1
namespaces ×1
php ×1
python ×1
resharper ×1
ruby ×1
xcode ×1