问题标签 [organization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python 应用程序的最佳项目结构是什么?
想象一下,您想用 Python 开发一个重要的最终用户桌面(不是 Web)应用程序。构建项目文件夹层次结构的最佳方法是什么?
理想的功能是易于维护、IDE 友好、适合源代码控制分支/合并以及易于生成安装包。
尤其:
- 你把源放在哪里?
- 您将应用程序启动脚本放在哪里?
- 你把 IDE 项目放在哪里?
- 你把单元/验收测试放在哪里?
- 您将非 Python 数据(例如配置文件)放在哪里?
- 对于 pyd/so 二进制扩展模块,您将非 Python 源代码(例如 C++)放在哪里?
python - 如何连贯地组织 PyGTK 桌面应用程序的模块?
我正在使用 PyGTK 开发一个桌面应用程序,并且似乎遇到了我的文件组织的一些限制。到目前为止,我已经以这种方式构建了我的项目:
- application.py - 保存主要的应用程序类(大多数功能例程)
- gui.py - 拥有一个松耦合的 GTK gui 实现。处理信号回调等。
- command.py - 包含不依赖于应用程序类中数据的命令行自动化功能
- state.py - 保存状态数据持久性类
到目前为止,这已经很好地发挥了作用,但此时 application.py 开始变得相当长。我查看了许多其他 PyGTK 应用程序,它们似乎有类似的结构问题。在某个时刻,主模块开始变得很长,并且没有明显的方法可以在不牺牲清晰度和面向对象的情况下将代码分成更窄的模块。
我考虑过让 GUI 成为主要模块,并为工具栏例程、菜单例程等设置单独的模块,但那时我相信我将失去 OOP 的大部分好处并最终得到一个一切都引用一切的场景.
我应该只处理一个很长的中央模块,还是有更好的方式来构建项目,这样我就不必过多地依赖类浏览器?
编辑我
好的,关于所有 MVC 的东西都采取了这一点。我的代码中确实有一个粗略的 MVC 近似值,但不可否认,通过进一步分离模型和控制器,我可能会获得一些进展。但是,我正在阅读 python-gtkmvc 的文档(顺便说一句,这是一个很棒的发现,感谢您参考它),我的印象是它并不能解决我的问题,而只是形式化它。我的应用程序是一个单一的空地文件,通常是一个窗口。因此,无论我多么严格地定义模块的 MVC 角色,我仍然会让一个控制器模块完成大部分工作,这几乎就是我现在所拥有的。诚然,我对正确的 MVC 实现有点模糊,我会继续研究,但事实并非如此
我应该为窗口的不同部分(工具栏、菜单等)考虑单独的控制器/视图对吗?也许这就是我在这里所缺少的。似乎这就是 S. Lott 在他的第二个要点中所指的内容。
感谢您到目前为止的回复。
filesystems - 您如何将上传的文件存储在文件系统中?
我试图找出将用户上传的文件存储在文件系统中的最佳方式。文件范围从个人文件到 wiki 文件。当然,数据库将以某种我尚未弄清楚的方式指向这些文件。
基本要求:
- 童话般的安全,所以人们无法猜测文件名(Picture001.jpg、Picture002.jpg、Music001.mp3 是一个很大的禁忌)
- 轻松备份和镜像(我更喜欢一种方式,这样我就不必每次备份时都复制整个 HDD。我喜欢只备份最新项目的想法,但我对这里的选项很灵活。 )
- 如果需要,可扩展到多台服务器上的数百万个文件。
c++ - 如何从不同头文件中的类继承?
我有依赖问题。我有两个班级:Graphic
和Image
。每个都有自己的 .cpp 和 .h 文件。我将它们声明如下:
Graphic.h
:
Image.h
:
当我尝试编译时,出现以下错误:
如果我删除Graphic
from的前向声明,Image.h
则会收到以下错误:
svn - 这是创建具有多个项目和供应商的 SVN 存储库的正确分步和组织吗?
我已经阅读了相当多的 Red Bean Software SVN Book,以及一些关于 SO 的问题,但我想确保我第一次以正确的方式一步一步地解决这个问题我开始使用它。它是否正确?
- 安装SVN。
在 /usr/local/svn 创建 SVN 存储库。目录结构如下所示:
/li>通过命令行为存储库组织(包括项目和供应商)创建文件夹。
/li>将供应商代码签出到正确项目名称下的供应商文件夹中。
- 以正确的项目名称将供应商代码导出到主干(无需合并,因为我还没有项目主干文件)。
- 在 /svnroot/conf/passwd 和 /svnroot/conf/svnserve.conf 中创建用户/权限。
- 确保 svnserve 正在运行,并在我的本地 SVN 客户端 (TortoiseSVN) 上检查我需要的项目的主干。
我不需要通过公共 URL 提供此服务,因此我没有为 Apache 进行配置。服务器不在我们的网络中,而是我们租用的专用 CentOS 盒子。感谢您的任何想法和建议。
编辑:
我想我很困惑,因为我没有代码或项目开始,所以我从供应商的代码开始。我是否需要在服务器上的某处创建一个目录结构,其中包括我的 project_name w/ vendor、trunk、branches 和 tags 子文件夹,将其导入我的 repo,然后将供应商的代码导入 vendor 文件夹?我的想法是我可以从供应商那里获得更新,然后将这些更新与我对我的主干所做的任何更改合并。
open-source - 在组织中采用开源软件
为组织采用开源软件的利弊是什么?有没有人做过这件事,以及他们采用的软件的一些例子以及它是如何使用的?
通常捐款的出现是因为人们将其作为一种爱好,那么我们如何才能确保它会得到持续的支持呢?恕我直言,如果是专有软件,则对组织(金钱)有激励作用,只要软件有利可图,他们就会继续雇用人员来保持其开发。如果我错了,请纠正我。对于可能反对使用开源软件的建议的经理,我可以期待哪些论据?
c++ - C++ 类头文件组织
对于必须处理分布在多个源文件和头文件中的大量相互依赖的类的人,您建议的 C++ 编码和文件组织指南是什么?
我的项目中有这种情况,解决跨多个头文件的类定义相关错误变得相当头疼。
organization - 中断后重回正轨
在过去的几周里,除了参加培训课程外,我似乎还被旧项目的维护任务打断了很多。我觉得我已经失去了当前项目的所有前进动力。甚至开始编码都很困难,因为我不确定我在做什么以及在中断之前我在想什么。
在中断导致您离开当前项目几个小时或几天后,您有哪些技巧或技术可以帮助您更轻松地重新启动?
file - 您如何管理和组织您的文件?(脚本、repos、下载、pdf 等)
像你们中的许多人一样,我必须处理大量文件:源代码、二进制下载、电子表格、pdf、word 文档、图像、注释文件、快速脚本等等。
这些文件可以分为许多类别:
- 最终应该删除的临时文件
- 应该归档的重要或有用的参考文件
- 与特定雇主的特定项目相关的文件
- 一般雇主文件,例如假期时间表、医疗保健计划、旅行申请表等
- 与任何特定雇主无关的专业文件
- 副项目
- 个人文件(税金、重要收据、票据等)
我想避免巨大的文件夹层次结构,特别是对于我经常通过命令行访问的文件
对于存档文件,索引的、基于标签的分类系统似乎比文件夹方法更适合。
是否有任何推荐的工具或系统来有效地管理文件?我正在考虑将我的下载文件夹变成一种“收件箱”并采用 GTD 方法。此外,像 Hazel 这样的程序可能会有所帮助。
我的重点是 Mac 软件,但我有兴趣了解所有方法。
您使用哪些文件夹结构、系统和工具来管理文件?
linux - Linux下的文档管理
经过多年在杂乱无章的文档的海洋中航行,我开始寻找一种廉价/免费的方法来对我们的工作文档进行结构分类,以便整理并更好地执行工作流程。所以我希望能够根据项目、客户、使用的组件等标记文档。
例如,想象这些文档:
- 《业务需求》,标签:projectX
- 《项目布局》,标签:projectX、appserverZ
- 《类图》,标签:projectX、businesslogic
- 《报价单》,标签:projectX、customerY
...等等..
这样我可以通过标签过滤文档,例如获取给定项目的所有文档,或给定客户的所有报价,或使用给定应用程序服务器的所有项目。 .
像M 文件这样的东西会很完美,但我更喜欢基于 Linux 的解决方案.. :) (如果可能的话,甚至不是基于网络的)
我整天都在尝试在 Freshmeat 和 Wikipedia 上找到的 DMS,但我找不到一个像 M 文件一样工作的文件.. :/
我将不胜感激任何提示/指针,非常感谢!