标签: code-organization

如何在嵌入式项目中组织代码?

高度嵌入(有限代码和ram大小)项目为代码组织带来了独特的挑战.

我见过很多没有组织的项目.(主要是硬件工程师,根据我的经验,他们通常不关心代码的非功能方面.)

但是,我一直在尝试相应地组织我的代码:

  1. 特定硬件(驱动程序,初始化)
  2. 特定应用(不太可能重复使用)
  3. 可重复使用,硬件独立

对于每个模块,我尝试将目的保持为这三种类型之一.

由于嵌入式项目的规模有限以及对性能的重视,通常会保留这个组织.

在某些情况下,我目前的项目是MSP430上的有限DSP应用程序,具有8k闪存和256字节RAM.

embedded code-organization

15
推荐指数
2
解决办法
2658
查看次数

循环后避免重复代码?

在使用循环时,我经常最终写两次代码.例如,在浏览Udacity计算机科学课程时,我编写了代码(用于查找最顺序重复元素的函数):

def longest_repetition(l):
    if not l:
        return None
    most_reps = count = 0 
    longest = prv = None
    for i in l:
        if i == prv:
            count += 1
        else:
            if count > most_reps:
                longest = prv
                most_reps = count
            count = 1
        prv = i
    if count > most_reps:
        longest = prv
    return longest
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果计数大于先前重复的元素,我会检查两次.当当前元素与上一个元素不同以及当我到达列表末尾时,都会发生这种情况.

在按字符解析字符串时,我也遇到过这种情况.还有几次代码大约有5行代码.这是常见的,还是我思考/编码的结果.我该怎么办?

编辑:同样,在一个人为的字符串拆分示例中:

def split_by(string, delimeter):
    rtn = []
    tmp = ''
    for i in string:
        if i == delimeter:
            if tmp != '':
                rtn.append(tmp) …
Run Code Online (Sandbox Code Playgroud)

python language-agnostic code-organization

15
推荐指数
3
解决办法
1831
查看次数

如何将C#代码组织到文件中?

在C#中,关于要创建什么类型,应该拥有哪些成员以及应该拥有哪些名称空间的问题是OO设计的问题.它们不是我在这里感兴趣的问题.

相反,我想问一下如何将这些存储在磁盘工件中.以下是一些示例规则:

  • 将所有程序集的类型放在单个源文件中.一位做过此事的朋友说"文件是一个僵尸代码组织工具;今天我使用classview和Collapse to Definitions来浏览我的代码".

  • 将所有代码放在一个程序集中.使部署和版本控制更简单.

  • 目录结构反映命名空间结构

  • 每个命名空间都有自己的程序集

  • 每种类型都有自己的组装.(列为一个极端的例子.)

  • 每种类型都有自己的源文件.

  • 每个成员都有自己的文件; 每种类型都有自己的目录.(列为一个极端的例子.)

c# code-organization

14
推荐指数
2
解决办法
7244
查看次数

如何组织我的所有代码,数据,脚本,任务等?

您会建议哪些工具或方法让"一人团队"保持井井有条?

我正在进行涉及大量编码的研究,编写数百个丢弃的perl脚本,使用的C++二进制文件,直到找到更好的方法,大量数据以不同的方式进行预处理,其中一些新的预处理使得古老的方式已经过时 - 直到我发现旧的方式实际上更好,等等.我的工作本身就是一个不断变化的目标,因为我必须尝试很多东西,而且往往都不是完美的.

这不是一个完全混乱的情况,但它也远非完美.在这种情况下,您会推荐一般方法吗?我确实使用SVN我的代码,虽然不是因为它太大而不适用于不同版本的数据.跟踪所有脚本和二进制文件很难,所以我总是评论它们,写下我如何运行它们等等.但是我很好奇你是否还有其他一些想法.

(我在linux系统上工作.)

version-control project-management code-organization project-organization

14
推荐指数
1
解决办法
1279
查看次数

我们应该将类,枚举和其他实体放入他们自己的文件中吗?

我和我们公司的teamlead\architect就此主题进行了讨论.

他认为,如果"通过逻辑连接的实体"放在一个cs文件中,那么理解大型项目会更容易.

我引用:

  1. "逻辑和接口以及类的整个结构可以在一个地方看到,这是一个不能反驳的论据.要看到相同的东西但是有一堆文件你需要使用工具,类图,R#用于导航等."

  2. "根据糟糕的理论,我可能会尖叫一大堆分离文件很酷,但是当谈到改变现有代码时,特别是如果你不是这个代码的作者,那么很难理解大量分散的文件.所以在论坛上,你可以写出"一个枚举文件",但实际上这种方法绝对不能用"

  3. "......至于开发人员之间的代码库分离,现在同时编辑同一个文件不是问题.合并不是问题."

我多次听说过,我们必须为每个枚举,类等创建一个.cs文件,这是最好的做法.

但我无法说服他.他说他不相信任何知名程序员,如Jon Skeet.顺便说一句,这里是Skeet对这个主题的看法哪里是定位枚举类型的最佳位置?

你怎么看?有真正的问题吗?或者这是一个品味的问题,应该由组织的编码标准来规范?

.net c# project code-organization

14
推荐指数
1
解决办法
4655
查看次数

重复每个模块组件的模块名称

着名的Angular App Structure最佳实践建议博客文章概述了新推荐的angularjs项目结构,该结构现在面向组件,而不是面向功能,或者在最初的github问题中命名- "按功能组织".

博客文章建议每个模块中的每个文件都应该以模块名称开头,例如:

userlogin/
    userlogin.js
    userlogin.css                
    userlogin.html                
    userlogin-directive.js
    userlogin-directive_test.js
    userlogin-service.js
    userlogin-service_test.js 
Run Code Online (Sandbox Code Playgroud)

问题是:在模块中的每个文件名中重复模块名称的优点和缺点是什么,而不是命名功能的文件?例如:

userlogin/
    userlogin.js
    userlogin.css                
    userlogin.html   
    controllers.js             
    directives.js
    services.js
Run Code Online (Sandbox Code Playgroud)

我问的原因是我来自一个Django项目和应用有一些类似想法的世界.每个应用程序通常都有它自己的models.py,views.py,urls.py,tests.py.脚本名称中没有重复的应用程序名称.

我希望我没有跨越基于意见的路线,并且有正当理由遵循这种方法.

javascript code-organization naming-conventions project-structure angularjs

14
推荐指数
3
解决办法
864
查看次数

有关如何组织JavaScript代码的好例子吗?

我已经学习了JavaScript并且知道如何编写OO JavaScript,我可以完成自动完成,使用JavaScript的照片库这些任务,但我只是不知道如何组织代码.例如,何时何地定义函数,如何组织这些变量等等.
所以我正在寻找一些好的和简单的JavaScript项目示例来学习这些好的实践.你能建议吗?(例如列表数据过滤器).

javascript design-patterns code-organization

13
推荐指数
1
解决办法
4216
查看次数

组织Ruby测试文件夹结构的最佳实践是什么?

在Java中,通常您将创建两个源文件夹srctest具有相同的包层次结构.

在Ruby中,您是否只将所有测试放在与测试类相同的文件夹中?或者您是否在单独的文件夹中创建类似的层次结构?如果是这样,您如何管理require单元测试中的路径?

ruby unit-testing rspec code-organization testunit

13
推荐指数
1
解决办法
3946
查看次数

为项目使用多个代码文件有什么好处?(C++)

在单个项目中使用多个source(.cpp)和header(.h)文件有什么好处?

这只是一个优惠的事情还是有真正的好处?

c++ code-organization project-files

13
推荐指数
2
解决办法
5109
查看次数

在Scala中对实用程序功能进行分组的首选方法?

对不属于类的实用程序函数进行分组的最佳方法是什么?在Ruby中,我会将它们分组在一个模块中.我应该在Scala中使用特征来获得相同的效果还是对象?

scala code-organization

12
推荐指数
2
解决办法
2224
查看次数