Questions tagged «coding»

编码是描述编程的另一种方式。

3
在压力下如何避免跳到解决方案?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 在特别严格的编程截止日期(例如一个小时)内,如果我完全感到恐慌,我的趋势是跳入没有真正计划的编码,并希望我能继续研究下去。如果有足够的时间,这是可行的,但是在一次采访中,即使不是彻头彻尾的适得其反,它还是非常不成功的。我不总是舒服地坐在那里想着时钟打tick。 当您足够了解问题并开始编码时,是否存在核对表或是否存在识别技术?什么时候最能想到的是进行设计和设计,而不是进行一些实验,然后再进行总体设计? 这是参加数学考试和参加口语考试的技巧清单。是否有类似的技术清单来处理压力下的编程问题? 答案:我认为这是一个有效的答案:如何解决。我发现该链接是解决步骤或解决方案的答案。在上也有一些非常好的技巧。在面试中大声思考真的是最好的策略吗?。TDD的一个简洁明了的论据是TDD的第一个答案写代码vs找出问题的答案?。

8
Python编码标准与生产力
我为一个大型人道主义组织工作,开发了一个项目构建软件,该软件可以通过加快食品分配来在紧急情况下挽救生命。许多NGO迫切需要我们的软件,而我们比原计划晚了几周。 在这个项目中让我担心的一件事是,我认为过分注重编码标准。我们使用python / django编写并使用PEP0008版本,并进行了各种修改,例如,行长最多可以达到160个字符,并且如果可能的话,所有行都应该走那么长,导入之间没有空行,仅适用于某些种类的换行规则类,我们必须使用很多模板,即使它们不是解决问题的最佳方法等。 一位核心开发人员花了一周的时间重写系统的主要部分以满足当时的新编码标准,并丢弃了过程中的几套测试,因为重写意味着它们“无效”。我们花了两个星期来重写所有丢失的功能,并修复错误。他是首席开发人员,他的话语具有影响力,因此他说服了项目经理这些标准是必要的。初级开发人员按照他们的指示做。我觉得项目经理对所有这些都有强烈的认知失调感,但是尽管他不确定要做什么,但还是非常赞同。 今天,我遇到了严重的麻烦,因为我忘记在关键字参数中的逗号后加上一些空格。在Skype通话期间,我确实被其他两个开发人员和项目经理大喊大叫。就我个人而言,我认为编码标准很重要,但同时我们也认为我们浪费了大量时间来沉迷于它们,当我口头表达这时,它引起了人们的愤怒。我被视为团队的麻烦制造者,一个正在寻找失败者的替罪羊。自从引入编码标准以来,团队的生产力已显着下降,但这只会加剧这种痴迷,即首席开发人员只是将我们不遵守标准归咎于缺乏进步。他认为,如果我们不遵守约定,我们将无法阅读彼此的代码。 这开始变得粘滞。现在,我正在尝试修改各种脚本(autopep8,pep8ify和PythonTidy)以尝试匹配约定。我们还对源代码运行pep8,但是对我们的标准有很多隐式修改,以至于很难跟踪它们。首席开发人员简单地挑出了pep8脚本没有拾取的错误,并在下一次站立会议中向我们大喊。每周都有新的编码标准增加,迫使我们重写现有的,有效的,经过测试的代码。谢天谢地,我们仍然有测试,(我还原了一些提交,并修复了一堆他删除的提交)。 一直以来,满足截止日期的压力越来越大。 我认为一个基本问题是,首席开发人员和另一个核心开发人员拒绝信任其他开发人员来完成工作。但是如何处理呢?我们无法完成工作,因为我们正忙于重写所有内容。 在软件工程团队中,我从未遇到过这种动态。我对他们是否遵守编码标准提出质疑吗?是否还有其他人遇到过类似情况,他们如何成功处理?(我不是在讨论人们只是找到实际解决方案的讨论)

12
带注释的简短代码与无注释的较长且易于理解的代码-哪个是首选?
有时可以用两种方式编写算法: 一种简短的幻想方式;要么 更长的,易于理解的方式。 例如,这是一种将字符串复制source到destC中的更长,更简单的方法: *dest = *source; while (*source != '\0') { source++; dest++; *dest = *source; } (true); 这是一种简短的幻想方式。 // Copy string source to dest while (*dest++ = *source++); 我一直听到并读过,应该避免使用花哨的代码,我倾向于同意。但是,如果我们考虑到评论该怎么办?假定像上面的示例一样,我们有一个未注释的,较长的并且据说更易于理解的代码,以及一个注释良好的,简短的,精美的代码?非花哨的代码还是首选吗? 编辑:许多人对变量名发表了评论,所以我修改了示例代码,以免在优先选择其他变量时使它成为一个因素。我试图在第一个示例中删除双重分配,但这只会使代码的可读性降低。 也许这不是最好的示例,因为许多人发现“花哨的”代码比较长的代码更具可读性和可理解性。这个想法是要有一个更长的代码,比一个简短但复杂的代码更容易理解。 EDIT2:这是我从SO获得的一个新例子: 评论版本: //direct formula for xoring all numbers from 1 to N int Sum = (N & …

12
您在编程时多久运行和测试一次代码?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 尤其是在用C从头开始编写新代码时,我发现自己编写了数小时甚至数天的代码,除了偶尔进行语法检查之外,甚至没有运行编译器。 我倾向于仔细地编写更大的代码块,并仅在确信通过分析我的头脑中的代码可以实现代码的预期工作时才进行彻底的测试。不要误会我的意思-我不会编写1000行而不进行任何测试(这将是赌博),但是在我认为完成后我会编写一个完整的子例程并对其进行测试(并在必要时进行修复)。 另一方面,我看到大多数新手都会在他们进入编辑器的每一行之后运行并测试他们的代码,并认为调试器可以代替谨慎和理智的做法。学习了语言语法后,我认为这会分散很多注意力。 您认为这两种方法之间的正确平衡是什么?当然,第一个需要更多经验,但这对生产率有正面还是负面的影响?第二个可以帮助您更好地发现错误吗?

5
教科书等中的源代码是否应该翻译?
几周前,我的课被分配翻译成葡萄牙语Real World Haskell。在翻译文本和注释时,我开始怀疑我是否也应该按照教师的建议翻译代码。例如: 数据BookInfo = Book Int字符串[String] 衍生节目 会成为 数据InfoLivro = Livro Int字符串[String] 衍生节目 由于我还没有阅读过任何与葡萄牙语有关的软件书籍,因此,我不知道这是否是常见的做法,也不知道是否应该这样做。最后,代码是一种混合语言(也许Haskell中的示例不是一个很好的例子,因为您可以像那样快速创建同义词type CadeiaDeCaracteres = String,但是您明白了)。因此,无论您多么努力,都没有关系,您必须依靠读者以前的经验来使用某种基本的英语单词。 知道这一点,我真的看不出翻译代码的意义,因为我们在编码生涯的早期就学习了它应该以通用语言编写。但是,如果需要翻译周围的文本(例如注释和书中的文本本身),那么在这件事上有什么可能和可行的?您能为我提供一些操作指导吗?
16 coding 


2
Code Complete的哪些部分没有经受住时间的考验?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我在看书架上的Code Complete,心想:“在“神话般的月”之外,这可能是少数经受时间考验的大众市场软件工程书籍之一。因此,我正在考虑重新阅读它。 我很好奇-最近有没有其他人再次看过它?我是这样,您看到他有什么不对吗? 这不是攻击,也不是要求书评-我对多年来改变了哪些观念更感兴趣。 而且,请不要发表任何评论,“ Demarco / Spewak / Zachman经受了时间的考验……”​​我对Code Complete尤其感兴趣,因为它涵盖了广泛的领域,并且在该领域具有广泛的影响力。
14 coding  resources 

3
关于如何减少“经理”类使用的提示/建议?
有时,我听说程序设计中有太多“管理器”类是代码的味道,并增加了不必要的复杂性。对我而言,人们想使用管理器类从对他们有意义的上下文中使用对象来控制和控制对象是有道理的,但是弄清楚如何使解决方案在没有它们的情况下有效。 真的应该尽可能避免经理班吗?另外,对于应删除这些管理人员的一般/常见情况,我应该阅读哪些文章/论文,以了解如何实施替代方法?

7
编写代码后,为什么一段时间后我觉得“我会写得更好”?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我从事C ++的业余项目已有2年以上。每当我编写模块/函数时,我都会经过很多思考。现在看到问题了 do { --> write the code in module 'X' and test it --> ... forget for sometime ... --> revisit the same piece of code (due to some requirement) --> feel that "This isn't written nicely; could have been better" } while(true); 这'X'是任何模块(小/大/中)。我观察到,无论我在编码时付出了多少努力,这种情况都会发生。因此,大多数情况下,我不会看到有效的代码。:) 这是很多人的普遍感觉吗?这是语言的特定现象吗?(因为在C ++中,可以用不同的方式编写相同的东西)。 如果我对现实世界的生产代码有这种重构的感觉,该怎么办,在那儿更改工作代码不会赢得很多荣誉,但是如果失败,可能会带来麻烦。

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

12
是否可以通过编程学习数学,还是应该学习编程数学?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我在数学上不是最好的,也不是很恐怖,但是比一般人要低,我一直想提高自己的数学水平,但是学校和书本却没能做好,因为我觉得太无聊了。我唯一不会感到无聊的是编码和游戏,所以我认为如果编写一个解决数学问题的程序可以帮助我更好地理解数学,这些问题中的大多数是极限(微积分),函数,微分微积分和其他一些主题(我已经说的不太好)与前面提到的类似。 我的问题是:如果我进行一些特定的程序编码,我是否能够在数学上获得更好的知识,并且如果可能的话,物理学也可以这样做吗?还是我做错了,应该在编程之前学习数学以帮助改善编码? PS:C ++是首选语言。

8
那所有这些编码规则呢?
我一直支持为公司或特定项目的开发人员制定编码规则的想法。特别是如果公司的规模大于10。公司越大,需求越大。我知道很多人会不同意,但是我看到没有这些项目的项目,并且代码看起来像是彻底的灾难。 由此产生的真正问题是,如何使那些不喜欢在if语句中使用方括号,不喜欢在代码中到处使用相同的连接字符串的人,或者不使用编码规则而又不反对的人这个主意?

19
经验:在上网本上编码
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 嗨,我想购买一台上网本,以便在火车上做一些事情。有人可以报告在上网本上编写简单内容的方式吗?10/12”。 我想买一个很便宜的。像1gb ram 1,6ghz blabla。并使用apache在其上运行linux。我将使用JS / PHP进行编码。作为IDE,我将使用notepad ++。所以没有什么像eclispe一样重要。也许稍后会在eclipse for Java上使用,但这并不重要。 所以首先,这种设置在这样的上网本上是否可以正常工作,并且可以编码吗? 我没有在上网本上设置任何主页样式,我只想编码。 如果有人可以分享他的经验会很好。 谢谢 :)
10 coding 


9
开发方法是否应该压制开发人员的个人主义?
我正在大学的最后一个学期,正在学习软件工程课程。在课堂上,我们学习各种软件开发方法。我们关注并用于开发项目的方法是瀑布方法。 我觉得教练可能执行错误。在我们的类图中,我们必须列出所有属性和方法,包括私有属性和方法。我读过几本书,即“清洁代码”,该书说,要使功能尽可能简短和集中。如果它们不能帮助其他开发人员列出所有小功能,这似乎很麻烦(它们是私有的,没有其他人可以使用它们)。另外,在设计程序时,我可能不会想到每个微小的功能,在重构时它们可能会出现。 讲师是否要求我们列出所有功能,以告诉我们错了?而且,这些设计方法是否压制了开发人员的个人主义以编写代码,从而使他们更好地理解代码?

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.