在创建 JAR 文件时,我总是将源文件分开并作为可选的附加文件提供。
例如:
这似乎是显而易见的做事方式,并且非常普遍。优点是:
我开始怀疑这些优势是否总是值得的。我正在开发一个开源的小组件。无论如何,我上面列出的优点都不是这个项目中的问题:
然而,保持类的源代码确实带来了新的优势:
这些新优势对我来说真的很有吸引力。是的,我可以将源代码、类甚至 javadoc 压缩到一个 zip 文件中,然后让我的组件的客户决定他们想要使用哪个(就像谷歌对番石榴库所做的那样),但这真的值得吗?
我知道它有点违反传统的软件工程逻辑,但我认为单个 jar 文件的优势超过了替代方案。
我错了吗?有没有更好的办法?
有一种方法可以转移github中存储库的所有权,但是有没有一种方法可以完全转移组织的所有权呢?
Github 目前提供的是一种向组织的所有者团队添加多人的方法。而且,最初创建组织的用户也可以将任何所有者从团队中删除。有没有办法删除该用户,并将完全控制权转移给团队中的某个人?
在我使用过的大多数 MVC / MV* 类型框架中,他们希望您的源代码组织如下:
model/
FooModel.xyz
BarModel.xyz
view/
FooView.xyz
BarView.xyz
controller/
FooController.xyz
BarController.xyz
Run Code Online (Sandbox Code Playgroud)
根据 MVC 元素而不是应用程序对象类型来组织目录。我内心的某些部分总觉得如果代码按如下方式组织,生活会更轻松:
Foo/
FooModel.xyz
FooView.xyz
FooController.xyz
Bar/
BarModel.xyz
BarView.xyz
BarController.xyz
Run Code Online (Sandbox Code Playgroud)
因为一般来说,如果我正在处理 Foo(例如添加新字段),我经常会打开所有 Foo* 文件,这很乏味(第一世界问题),因为所有 Foo 文件都位于不同的目录中。
这是 Foo 源之间的耦合太紧密的代码味道吗?
当然,当我们的模型、视图或控制器没有相应的视图、控制器和模型时,这种替代方案的吸引力就会降低。这是经常(通常?)的情况......
那么为什么 MV* 框架的标准组织实际上比我提出的稻草人替代方案更好呢?
我正在编写一个 Python 模块,它只有大约 20 个有趣的类型和全局方法,但有大量常量和异常(大约 70 个用于语言环境的常量、60 个用于编码的常量、20 个格式化属性、超过 200 个异常,等等)。结果help(),该模块生成了大约 16,000 行文本,并且散布着对每个异常几乎相同的描述。这些常数的要求并不高,但导航它们仍然很困难。
组织这样一个模块的Pythonic方式是什么?就保留原样并依赖其他文档吗?将常量移动到单独的字典中?进入子模块?在适当的情况下将它们添加为类级常量?
请注意,这是一个 C 扩展,因此我无法在此处轻松添加真正的子模块。我听说这并sys.modules没有真正检查对象是否有模块,因此可以在那里添加字典;这样我就可以创建mymodule.locales、mymodule.encoding和 ,并在导入模块时mymodule.exceptions将它们添加到其中。sys.modules这是个好主意还是太黑客了?
这是一个更笼统的菜鸟问题。我正在 Linux(更准确地说是 Ubuntu)中开发一个小应用程序,此时我有一个可执行文件、一个共享库(.so)、一个配置文件 (.conf),其中包含一些可供应用程序读取的设置一开始,一个数据文件夹,其中包含要在应用程序生命周期中使用的图像和其他资源(也可以修改、删除的资源),当然,我需要一些日志和消息文件(现在我正在使用syslog) .
所以,我的问题是,当应用程序安装在客户端的计算机上时,这些应用程序中的每一个都应该存储在哪里?在 Linux 中组织所有应用程序文件的标准方法是什么?在 Windows 上,所有东西通常都可以在 C:\Program Files\(App Folder) 中找到,但在 Linux 上,看起来更多(或更少)有组织。你能给我一些关于这个问题的建议吗?
标题并不是我的全部问题。从理论上讲,我知道如何组织代码,但我想要一些具体的、有用的指针。请在抱怨之前继续阅读。
我是 java 和 OOP(面向对象编程)的初学者,我真的很想学习如何更好地组织我的代码!在一两个月的时间里,我制作了一个计算器程序,里面有一些我想到的小功能,还内置了一些小笑话。第二次查看后,我意识到它的格式非常糟糕,几乎难以理解。如果可以的话,我想请一些更有经验的程序员为我指明正确的方向,告诉我应该做什么来修复它(例如,我可以把什么东西变成物体,我可以在哪里划分,等等)。
请注意,这是我第一次在这样的论坛上发帖,所以如果我需要澄清一些事情来帮助我,我做错了什么,我要求太多,请告诉我,以便我可以解决它我可以获得帮助。请不要只是将其标记为无效并将其归档以遗忘(就像 stackoverflow 中经常发生的那样)。另外,在有人问之前,不,这不是家庭作业,它是我自己自学 java 的成果(可能是为什么它效果不太好)。
这是源代码:
// This is the original Calculator code without objects in a single class. not really efficient...
package randomClasses;
import java.awt.*;
import java.awt.event.*;
import java.text.DecimalFormat;
import javax.swing.*;
@SuppressWarnings("serial")
public class CalcClass
extends JFrame
implements ActionListener {
JPanel[] row = new JPanel[6];
JButton[] button = new JButton[21];
String[] buttonString = {"7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", ".", "/", "C", "v", "+/-", "=", "0", …Run Code Online (Sandbox Code Playgroud) 随着我继续在我的应用程序上取得进展,我的样式表文件夹很快就会溢出。我已经阅读了关于资产管道的 rails 指南,并在互联网上搜索了一个有信誉的来源,但仍然在“rails 方式”上不知所措,以保持一切整洁。
在我去尝试自己开发一个系统之前,我希望能从你们那里得到一些建议。
在资产组织方面是否有众所周知的“最佳实践”?如果没有,什么对你来说效果很好?
截至目前,我的设置是这样的:
app/assets/stylesheets >
Run Code Online (Sandbox Code Playgroud)
application.css, 应用程序-RESPONSIVE.css
任何特定于正文、容器、导航栏、页脚的代码
controller.scss,控制器响应
*任何特定于该控制器的代码
lib/assets/stylesheets >
Run Code Online (Sandbox Code Playgroud)
重置.css
在 application.css 我使用
*= require reset
*= require_tree .
*= require_self
Run Code Online (Sandbox Code Playgroud)
然而,为了获得所有样式,我也一直在想,如果需要,在树之前设置self作为覆盖主要样式的方法是否更好?
css ruby-on-rails organization ruby-on-rails-3 asset-pipeline
它们似乎在文档示例中位于同一文件中:https : //facebook.github.io/react/docs/thinking-in-react.html。
在这样的某些组件很小的实例中,如何将组件分解为页面?
class ProductCategoryRow extends React.Component {
render() {
return (<tr><th colSpan="2">{this.props.category}</th></tr>);
}
}
class ProductRow extends React.Component {
render() {
var name = this.props.product.stocked ?
this.props.product.name :
<span style={{color: 'red'}}>
{this.props.product.name}
</span>;
return (
<tr>
<td>{name}</td>
<td>{this.props.product.price}</td>
</tr>
);
}
}
class ProductTable extends React.Component {
render() {
var rows = [];
var lastCategory = null;
this.props.products.forEach((product) => {
if (product.name.indexOf(this.props.filterText) === -1 || (!product.stocked && this.props.inStockOnly)) {
return;
}
if (product.category !== lastCategory) { …Run Code Online (Sandbox Code Playgroud) 在过去的几周里,除了参加培训课程之外,似乎我已经被旧项目的维护任务打断了.我觉得我在当前的项目中失去了所有前进的动力.甚至很难开始编码因为我不确定我在做什么以及在中断之前我在想什么.
您有什么技巧或技巧可以帮助您在中断之后更容易重新启动,从而使您远离当前项目几个小时或几天?