问题标签 [code-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.
c - #include 源 (*.c *.cpp) 文件有什么好的理由吗?
我已经使用开源库(“快速人工神经网络”)工作了一段时间。我在我的静态库中使用它的源代码。然而,当我编译它时,我收到数百个链接器警告,这可能是由于库在其他 *.c 文件中包含它的 *.c 文件(因为我只包括一些我需要的头文件而我没有触及lib本身的代码)。
我的问题:图书馆的开发人员是否有充分的理由使用这种强烈反对的方法?(或者至少我一生都被告知这很糟糕,根据我自己的经验,我认为这很糟糕)。或者它只是糟糕的设计,这种方法没有任何收获?
我知道这个相关的问题,但它没有回答我的问题。我正在寻找可能证明这一点的理由。
一个额外的问题:有没有办法在不过多接触库代码的情况下解决这个问题?我有很多自己的工作,不想创造更多;)
c++ - 我即将在 Sourceforge 上开源一个 C++ 项目。我可以得到一些关于代码组织的提示吗?
我即将根据 GPL 将我一直在从事的项目上传到 Sourceforge 上,并希望获得一些关于如何以易于理解和任何可能查看的开发人员使用的方式组织代码的建议它与 git 以及 Sourceforge 呈现事物的方式配合得很好。
我的项目是一个跨平台的 C++ 应用程序,包括以下内容:
- 执行实际工作的库部分
- 一个单独的 GUI 部分,它使用库部分
- 开源库,编译库需要包含路径
- 已修改的开源库,因此在某种意义上也是该项目的直接部分
- 所有库的编译输出
组织这个的最佳方式是什么?
在自己处理它时,从项目根目录我有这样的:
/LibPortion
/GuiPortion
/libs/open source libraries
/libs/modified open source libraries
/libs/compiled/ 保存已编译的库,包括在为 Windows 编译时不是来自开源库的,例如 Cygwin 库文件
这是一种合理的组织方式吗?这符合惯例和期望吗?
签入我的项目时,签入开源库以及项目的一部分是否有意义?我认为这样做是有意义的,因为这可以最大限度地减少为新开发人员设置和运行项目的摩擦。当然,我至少应该检查修改后的开源库。
此外,在已编译库下的存储库中包含什么意义?我认为最好告诉 git 忽略该目录并将其留空,因为它的内容在每个构建目标上都会有所不同,因为我的项目是跨平台的。
但是,对于不想自己构建和/或下载所有库以提供为主要平台预编译的库的人来说,这似乎也非常好。分享这些最聪明的方法是什么?我正在查看 Sourceforge,如果不是作为我的 git 存储库的一部分,我应该如何分享这些对我来说并不明显。
javascript - JavaScript 代码组织建议/代码审查
我正在一个有很多自定义(页面特定的 js)的大型网站上工作。有一个 main.js 和 page-specific.js 文件。有没有更好的方法可以使用以下模式?
如何重构使用 ajax 的多种方法?
我目前内联分配所有 onclick 事件,例如onclick="MYSITE.message.send... - 它有更好的方法吗?创建多个$("#button").click(function() {});似乎更多的工作...
}
php - 陷入困境,需要帮助突破到一个新的水平
我在一个不起眼的网站上工作,我的 PHP 技能平庸,自学成才,目前的界面结构是这样的:
起初这工作正常,而且看起来组织得很好,但所需的功能已经增长了 10 倍,而且它正在迅速变成一个无法维护、令人尴尬的混乱,我不知道如何摆脱它。
我觉得针对每种情况调用的函数都写得很好并且重点突出,但是对于如何处理用户与创建布局和处理返回的函数之间的中间步骤感到茫然。
我觉得 MVC 是一种解决方案?但是我很难掌握如何从这里到那里...
对于上述代码可能引发的任何头痛或不愉快的记忆,我深表歉意。感谢您的时间。
javascript - 在 asp.net MVC 项目中处理大型 javascript 代码的好策略是什么?
我试图找出管理我的 MVC 项目的 javascript 代码的最佳方法。由于页面的工作流程,我网站的一些页面在用户界面上使用了 javascript。
为了使开发和调试更容易,我将所有 javascript 拆分为四个 .js 文件,Initializations.js
这些文件具有处理任何形式的 jquery 控件和字段初始化DataRetrieval.js
的所有功能,它具有通过 ajax 检索和显示数据的所有功能,DataModification.js
它具有通过 ajax 将数据修改发送到服务器的所有功能,并且Utilities.js
具有实用功能来提供帮助。
以这种方式构建它不仅有助于我的开发工作,因为我知道哪个文件包含基于函数的特定函数,而且它还使我的 javascript 文件更小。它还有助于调试,因为我可以直接从 chrome 的调试器中查看脚本,选择哪个文件并轻松找到我需要调试的功能。从我正在阅读的内容来看,这也有帮助,因为大多数浏览器可以同时下载多个 .js 文件,从而更快地加载页面。这也使得以后更容易缩小。
我注意到的问题是使用 .js 文件我无法将 C# 代码嵌入其中,因为它们不是视图。这意味着我所有的 URL 都必须有魔术字符串(所以如果我稍后更改路由,我必须手动更改所有 URL)并且我不能使用我在 C# 中设置的常量来使所有内容都易于管理(如果我更改一个常量,例如整数意味着一个项目未发布,我必须在我的 javascript 文件中搜索所有引用并手动更改它们,这可能会导致错误)。
现在我想到的一种可能性是将我的 javascript 文件转换为部分视图。然而,这仍然使得在 Web 浏览器中调试页面变得相当复杂,因为页面的源代码将被 javascript 乱扔。这也使得以后很难缩小 javascript。
那么我可以使用哪些其他策略来管理我的 javascript 并使其与站点的 c#/MVC 部分保持一致,并且在我需要进行更改时不必违反 DRY?
我网站的 Web 应用程序部分还有很多开发工作要做,因此还有更多的 JavaScript 需要编写,我想在事情变得比现在更多失控之前想出一个策略。
code-reuse - 组织、存储和跟踪代码以供重用
许多个月前,我开始将我的音乐存储为 MP3。我疯狂地下载,然后将它们全部转储到一个文件夹中。在收集了数千首歌曲后,我一团糟。在我的空闲时间组织了两年的所有音乐之后,我已经把它放到了我图书馆的“D”部分。我开始每天编写代码,我想保留很多我所做的事情以供重用和将来参考。我经常使用 Visual Studio,有时也使用 Eclipse,但我也做 Web 开发。现在我只是在一个名为的外部驱动器上有一个文件夹Projects
,在该文件夹中我有我要保存的代码,按其各自的 IDE 和开发它的语言进行分解。现在工作正常,但我担心之后几年后它可能会变得难以驾驭,我不想再像我的音乐库那样乱七八糟。 有哪些好方法可以跟踪代码和编程项目,同时促进轻松导航和未来重用?
code-organization - 组织大段代码
我想知道stackoverflow用户使用什么代码组织方法。我有一个零星的思考过程,因此我的代码可能会开始显得凌乱和不堪重负。有小费吗 ?
php - PHP 函数组织
我正在编写一个非常基本的 php 应用程序,并创建了一大堆功能来执行各种操作,例如 display_user_nav()、display_user_list() 等。我想要一种以合乎逻辑的方式组织这些功能的方法。我真正需要的是一个 ruby 模块之类的东西,但我一直无法找到一个 php 等价物。我也觉得从编程的角度来看它们不属于类,因为我已经有一个 User 对象来包含一个用户的信息,并且不想在我想使用它们时创建和存储一个新对象.
我现在在做什么:
我想要做的事情(有点像 Ruby):
任何建议表示赞赏。
python - 如何为 PyQt 项目组织 GUI 代码?
我正在寻找类似于 组织 GUI 代码的东西,但适用于 Python 和 PyQt4。特别是,我正在查看有关如何处理和存储配置数据、一般状态等的提示和示例。
编辑:我在以下位置找到了一些关于旧版本的提示:http: //www.commandprompt.com/community/pyqt/
python - 如何最好地组织 Django 系统的规则组件?
我正在 Django 中设计(并最终编写)一个系统,该系统由两个主要组件组成:
- 游戏管理器:这本质上是一个数据输入部分。受信任(非公开)用户将在游戏系统上输入信息,例如玩家可能拥有的选项。这个接口只是 Django 管理控制台,它除了保存信息之外不“做”任何事情。
- 角色管理器:这是上述数据的消费者。公共用户将在上面定义的角色扮演系统中创建角色,从那些受信任用户输入的选项中提取。从 Django 的角度来看,这是项目中的一个单独的应用程序。
然而,我不知道该放在哪里,那就是与每个游戏相关的“规则”。本质上,对于放入第一个应用程序的每个游戏,都有一组先决条件、限制和其他特定于该游戏的业务逻辑。(还有结构相似的逻辑,所有游戏都通用。)逻辑将用 Python 编码,而不是用户输入。
该逻辑用于验证特定角色的过程,但与特定游戏相关联,需要动态交换。它是一个单独的应用程序,还是应该与角色管理器的表单相关联的验证?或者两者都可以?
这是我从头开始构建的第一个 Django 应用程序(而不是咀嚼别人的代码),而且我是 Python 哲学的新手,所以我全神贯注。
提前致谢。