软件工程

针对在系统开发生命周期中工作的专业人士,学者和学生的问答

4
在C ++中组织接口和实现的方法
我已经看到,在C ++中,关于头文件中的内容和cpp文件中的内容有几种不同的范例。AFAIK,大多数人,尤其是具有C背景的人会: foo.h class foo { private: int mem; int bar(); public: foo(); foo(const foo&); foo& operator=(foo); ~foo(); } foo.cpp #include foo.h foo::bar() { return mem; } foo::foo() { mem = 42; } foo::foo(const foo& f) { mem = f.mem; } foo::operator=(foo f) { mem = f.mem; } foo::~foo() {} …


8
构造函数通常不应调用方法
我向同事描述了为什么调用方法的构造函数可以是反模式。 示例(在我生锈的C ++中) class C { public : C(int foo); void setFoo(int foo); private: int foo; } C::C(int foo) { setFoo(foo); } void C::setFoo(int foo) { this->foo = foo } 我想通过您的额外贡献更好地激发这一事实。如果您有示例,书籍参考,博客页面或原则名称,将非常欢迎他们。 编辑:我一般来说,但我们在python中编码。
12 design 

6
如何改善对自己的代码的测试
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 今天,我检查了一些代码的更改,由于某些相当愚蠢但非常关键的操作,结果证明根本无法正常工作。我对此感到非常难过,希望最终能从中学到一些东西。愚蠢的事情是,我以前做过这些事情,而且我总是告诉自己,下次我不会变得如此愚蠢...然后再次发生,我对此感到更糟。 我知道您应该保持警惕,并从错误中吸取教训,但这就是问题:我努力提高自己,我只是看不到如何防止这些事情的发生。 所以,现在我要问你们:测试代码时,您是否有某些基本原则?

3
已故朋友的策划项目
我的一个好朋友和一个狂热的程序员最近去世了。他在BitBucket上留下了近40个项目。他们中的大多数是公开的,但其中有一些被标记为私人。我决定承担这些项目的策展职责,而不是让他的工作消失。 如果您遇到过同样的情况,您做了什么?您是否开源了所有内容?继续发展?全部删除吗?我很想听听其他人的经历。 将某些项目标记为私有有几个原因(BitBucket上的私有项目仅对受邀用户和原始创建者可见): 其中之一是在应用商店免费提供的iOS网络应用。我不得不关闭商店的应用程序,因为我关闭了他的网站,这对他的遗id有所帮助。但是,我已经在GPL v3下公开了该应用程序(他是GPL的重要支持者)。 其中之一包含专有代码。它不能开源。 其他人的工作仍在进行中。我不知道他是否打算将其纳入托管的付费服务中,或者他是否想在完成后根据开放源代码许可证提供代码。 以下是私人项目的列表: 某种活细胞模拟器,它使用SBML以及Runge-Kutta和Euler算法来做某事。这里有大量的代码,但我不知道它的作用或距离。没有文档。 会计申请;它后面似乎有可靠的数据库设计,但除此之外,几乎没有代码。 一个网站,其目的是建议好的餐馆。建立在yii上。似乎有很多代码,但是我需要设置一个WAMP堆栈以了解它的运行距离。 一个网站旨在为那些遭受过同样问题的人们提供纪念馆。建立在Joomla上。我不确定有多少代码只是Joomla,有多少是自定义的?再次,我需要让Joomla运行才能找出答案。 我刚刚向他介绍了Mercurial和BitBucket。所有私有项目都是他以前未在SVN中使用版本控制的代码库的单个提交。我没有SVN信息库,所以看不到提交日志。
12 social 


5
如何为初学者理解Linux内核源代码?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我是一名对内存管理感兴趣的学生,尤其是linux内核的页面替换组件。 有什么不同的指南可以帮助我开始理解内核源代码? 我曾尝试阅读Mel Gorman 的《了解Linux虚拟内存管理器》和Cesati和Bovet的《了解Linux内核》这本书,但是他们没有解释代码中的控制流程。他们仅最终解释了所使用的各种数据结构以及各种功能执行的工作。这使代码更加混乱。 我的项目涉及在主流内核中调整页面替换算法,并针对一组工作负载分析其性能。有没有一种易于理解的Linux内核(如果不是linux-2.6.xx内核)?

12
C ++不适合OOP吗?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我在这里某个问题的答案之一(不记得是哪个)中读到C ++不适合面向对象的编程。有人提到您可以利用它的功能或类似功能,但不能纯粹从面向对象的角度来理解(我实际上并不真正了解此人的意思)。 这有什么道理吗?如果是这样,为什么?

7
来自质量保证体系,一个人如何能够从事首次开发工作?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我从事质量检查已有10年,试图尝试其中的5个进行开发。我上过C ++,Java和C#类。我可以在当前的工作中用C#编写一些工具和单元测试,并且(通过所有帐户)做得很好。 但是,八个月前,我的雇主要求我建立新的质量保证小组。现在,我正在进行手动测试和部署,而没有返回到开发的希望。我已经看过工作板,网络开发人员有很多工作,那么我还能做些什么呢?我已经准备好计划在家里的Mac上阅读有关Ruby on Rails的一些书籍,但是我不确定雇主对除商业Web开发之外的任何内容都会感兴趣。 您对我如何利用自己的经验来获得初级开发人员的工作有任何建议吗?我的意思是需要编程。我看到的初级开发人员发布的内容除了编码之外还完成了所有繁琐的工作。他们应该称他们为“技术秘书”。
12 coding 

2
任何人都可以在代码峡谷等网站上成功销售源代码?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 最近,我遇到了两个可帮助程序员出售源代码的站点-binpress和codecanyon。任何人都对此类网站有经验/成功吗? 您会再次使用它们吗?他们有什么好处?他们有什么不好?

5
在以BDD风格编写规范时,应该使用“应该”还是不应该?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 我意识到这有点主观,但是我找不到一个合适的案例: 它“应该做某事”它“应该 做某事” 支持风格的支持者提到,它迫使您实际质疑您要实现的目标,而反对者则认为这是多余的。 是否对此达成共识,或者纯粹是风格问题?
12 testing  bdd 

12
汇编作为第一门编程语言?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 4年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 您认为教人们将汇编语言(某种变体)作为第一门编程语言有多么出色的主意?与学习Java或Python相比,这将花费更多的精力,但是从“第一天编程”(至少与许多高级语言相比)开始,人们或多或少会对机器有很好的了解。你怎么看?至少对于那些愿意付出额外努力的人来说,这是一个现实的想法吗?的优点和缺点? 注意:我不是老师,只是好奇

5
面向语言的编程实用吗?
我阅读了有关面向语言的编程的文章。他指出了现代程序/ OOP编程方法中的一些弱点,并提出了可以解决这些问题的新编程范式 我只想了解那些松散耦合的小型程序部分:最好学习很多小的东西,而您只需要一点点地使用它们,而不是几个大的东西。 阅读这篇文章后,我觉得作者正在推广以下两项内容之一: 多种易于创建的脚本语言 单一的,易于扩展的语言,可以自行重写以满足程序员的需求 如果他建议第二个,我将回答“已经完成!” 并以Lisp为例。正如保罗·格雷厄姆(Paul Graham)所建议的,无论如何,语言似乎一直在朝着这个方向发展。 就第一个而言,我认为这是一个好主意,如果有将它们紧密联系在一起的基本语言。在我看来,这是薄弱环节:语言之间的交流。您会使用过程概念或消息传递的调用方式,使我想起进程间通信吗?如果很容易同时使用它们,我欢迎有机会使用特定于小型领域的语言。这种方法(LOP)是否可行?

5
GPL依赖关系的后果是什么?
我正在为公司开发软件,我想使用GPL许可下的某些库。 会有什么后果?这是否意味着在这些GPL依赖之上开发的代码也将在GPL下?我有义务发布这些产品的源代码吗?
12 licensing  gpl 

5
高标准是否必然导致挫败感,如何应对呢?
我认为自己是编程语言爱好者。当我发现错误的代码(尤其是我自己的代码)时,很难理解,更改和测试。 我的同事们并不了解,或者不在乎。我为自己无法提高代码质量而感到沮丧。 当代码质量和可维护性不符合我的标准时,感到沮丧是正常的吗?如果是这样,您如何处理?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.