我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
当前回答
唯一的本地化/国际化问题是翻译消息。
我曾经认为所有其他语言(我没有语言环境的概念)在各个方面都像英语,除了单词和语法。因此,要本地化/国际化一个软件,您只需要让翻译器翻译显示给用户的字符串。然后我开始意识到:
有些语言是从右向左书写的。 一些脚本使用上下文塑造。 日期、时间、数字等的格式有很大的变化。 程序图标和图形可能对某些人群毫无意义或具有冒犯性。 有些语言有不止一个“复数形式”。 ...
即使在今天,我有时也会读到令我惊讶的国际化问题。
其他回答
我认为我应该尽可能地进行抽象。我的脑袋被这个撞了,因为太多交织在一起的小功能。
现在我试着让事情尽可能的简单和分离。重构使事物抽象比预测需要如何抽象要容易得多。
因此,我从开发规则它们的框架转移到完成工作的功能片段。从来没有回头,除了当我想起那段时间,我天真地认为我会是那个开发下一个大东西的人。
考试只是拖延的另一种方法。
XML名称空间(或者更糟,格式良好)在某种程度上比没有它们要困难得多。
一个非常常见的错误,甚至在W3C!
在c++中,很长一段时间我都在想编译器在给纯虚方法定义时拒绝你。
当我意识到我错了时,我很吃惊。
很多次,当我告诉别人为其抽象类提供其纯虚析构函数的默认实现时,他/她都用大大的眼睛看着我。我知道接下来会有一场长时间的讨论……这似乎在c++初学者中是一个普遍的信念(我认为我自己也是如此)。我目前还在学习!)
Wikipedia链接到c++的纯虚拟方法
如果你看不懂我的代码,那你就是不懂这门语言。我有一些代码审查,我试图反击。
我又花了几年的时间才明白,有一个时间和地点可以让你的代码变得神奇,那就是在库中,而不是在应用程序中。该应用程序是为了清晰和可读性。Magic最好隐藏在扩展方法和框架后面。