想象一下,您希望在Python中开发一个非平凡的最终用户桌面(而不是Web)应用程序.构建项目文件夹层次结构的最佳方法是什么?
理想的功能是易于维护,IDE友好,适用于源代码控制分支/合并,以及易于生成安装包.
特别是:
我真的很喜欢Rails(尽管我通常都是RESTless),而且我非常喜欢Ruby.仍然,制作巨大的ActiveRecord子类和巨大的控制器的趋势是很自然的(即使你每个资源都使用一个控制器).如果你要创建更深层次的对象世界,你会在哪里放置类(和模块,我想)?我问的是(帮助者自己?),控制器和模型的观点.
Lib是可以的,我找到了一些解决方案,让它在开发环境中重新加载,但我想知道是否有更好的方法来做这些事情.我真的只是担心课程变得太大了.那么,Engines怎么样?它们如何适应?
我知道实际上没有单一的正确方法.但是我发现很难创建一个运行良好的目录结构,并为每个开发人员和管理员保持干净.github上的大多数项目都有一些标准结构.但它没有显示在pc上组织其他文件和所有项目的方法.
在开发机器上组织所有这些目录最方便的方法是什么?您如何命名它们,以及如何将其连接并部署到服务器?
我想解决的问题:
目录是这样的:
home/
file1.html
file2.html
Another_Dir/
file8.html
Sub_Dir/
file19.html
Run Code Online (Sandbox Code Playgroud)
我使用PHPMyAdmin中使用的相同PHP Zip类http://trac.seagullproject.org/browser/branches/0.6-bugfix/lib/other/Zip.php.我不确定如何压缩目录而不仅仅是文件.这是我到目前为止所拥有的:
$aFiles = $this->da->getDirTree($target);
/* $aFiles is something like, path => filetime
Array
(
[home] =>
[home/file1.html] => 1251280379
[home/file2.html] => 1251280377
etc...
)
*/
$zip = & new Zip();
foreach( $aFiles as $fileLocation => $time ){
$file = $target . "/" . $fileLocation;
if ( is_file($file) ){
$buffer = file_get_contents($file);
$zip->addFile($buffer, $fileLocation);
}
}
THEN_SOME_PHP_CLASS::toDownloadData($zip); // this bit works ok
Run Code Online (Sandbox Code Playgroud)
但是当我尝试解压缩相应的下载zip文件时,我得到"不允许操作"
这个错误只发生在我尝试解压缩我的mac时,当我通过命令行解压缩文件解压缩时.我是否需要在下载时发送特定的内容类型,目前为'application/zip'
我是TypeScript的新手,现在我通过我的项目结构在几个地方都有.ts文件:
app/
|-scripts/
|-app.ts
|
|-classes/
| |-classA.ts
| |-classB.ts
|
|-controllers/
| |-controllerA.ts
| |-controllerB.ts
|
|-otherStuff/
|-otherstuffA.ts
Run Code Online (Sandbox Code Playgroud)
现在,当我的文件被编译时,它们被编译到.ts文件所在的同一目录:
app/
|-scripts/
|-app.ts
|-app.js
|
|-classes/
| |-classA.ts
| |-classB.ts
| |-classA.js
| |-classB.js
|
|-controllers/
| |-controllerA.ts
| |-controllerB.ts
| |-controllerA.js
| |-controllerB.js
|
|-otherStuff/
|-otherstuffA.ts
|-otherStuffA.js
Run Code Online (Sandbox Code Playgroud)
虽然我喜欢.js文件与.ts文件保持相同目录结构的方式,但我不想跟踪我的VCS中的.js文件,因此我想将所有JavaScript文件保存在单独的目录树(我可以添加到.gitignore),如下所示:
app/
|-scripts/
| |-app.ts
| |
| |-classes/
| | |-classA.ts
| | |-classB.ts
| |
| |-controllers/
| | |-controllerA.ts
| | |-controllerB.ts
| |
| |-otherStuff/
| |-otherstuffA.ts
| …Run Code Online (Sandbox Code Playgroud) 所以这似乎不是一个非常复杂的问题,但我找不到答案.我对-p选项在Unix中的作用感到困惑.我在创建子目录时使用它进行实验室分配,然后在该子目录中使用另一个子目录.它看起来像这样:
mkdir -p cmps012m/lab1
Run Code Online (Sandbox Code Playgroud)
这是在具有正常权限的私人目录中(rlidwka).提前致谢!哦,有人会介意对"rlidwka"的含义做一些解释吗?我不是Unix的总菜鸟,但我并不熟悉这意味着什么.希望这个问题不是太模糊.
unix command-line directory-structure command-line-arguments
我知道我们可以使用os.walk()列出目录中的所有子目录或所有文件.但是,我想列出完整的目录树内容:
如何在Python中实现这一目标?
用例很简单.我得到了使用Eclipse创建的源文件.因此,有一个深层目录结构,任何Java类都可以引用同一个子,兄弟或父文件夹中的另一个Java类.
如何使用javac从终端编译整个东西?
我正在开发一个C++库.最后,我想公开提供多个平台(至少Linux和Windows),以及一些示例和Python绑定.工作进展顺利,但目前该项目非常混乱,仅针对Visual C++构建,而不是多平台构建.
因此,我觉得清理是有序的.我想改进的第一件事是项目的目录结构.我想创建一个适合Automake工具的结构,以便在多个平台上轻松编译,但我以前从未使用过这些.由于我仍然会在Visual Studio中进行(大部分)编码,因此我需要在某处保留我的Visual Studio项目和解决方案文件.
我试图像谷歌"C++库目录结构"这样的术语,但似乎没有任何用处.我找到了一些非常基本的指导方针,但没有明确的解决方案
在查看一些开源库时,我想出了以下内容:
\mylib
\mylib <source files, read somewhere to avoid 'src' directory>
\include? or just mix .cpp and .h
\bin <compiled examples, where to put the sources?>
\python <Python bindings stuff>
\lib <compiled library>
\projects <VC++ project files, .sln goes in project root?>
\include?
README
AUTHORS
...
Run Code Online (Sandbox Code Playgroud)
我以前没有/很少有多平台开发/开源项目的经验,我很惊讶我找不到关于如何构建这样一个项目的任何好的指导.
人们应该如何构建这样的图书馆项目?建议阅读什么?有一些很好的例子吗?
如果我有一个自定义shell脚本或程序,我自己创建或从Web下载,并且我希望能够从CLI执行它,是否有标准位置将其置于Linux/Unix目录结构中?
/usr/bin ?
/usr/local/bin ?
/usr/lib ?
/usr/sbin ?
/bin ?
/sbin ?
/var ?
Run Code Online (Sandbox Code Playgroud)
我通常把它放在我的〜/ bin文件夹下并把它放在PATH中,但它看起来并不干净.每次我下载新程序时,我都必须再次将它放入PATH中.
command-line ×2
organization ×2
python ×2
unix ×2
automake ×1
c++ ×1
compilation ×1
directory ×1
django ×1
java ×1
javac ×1
javascript ×1
linux ×1
php ×1
recursion ×1
ruby ×1
shell ×1
traversal ×1
tsc ×1
typescript ×1
webstorm ×1
zip ×1