T******7 发帖数: 1419 | 1 先在flg 有专门的qa么?还是程序猿自己测试代码? |
|
n**********2 发帖数: 648 | 2 【 以下文字转载自 Programming 讨论区 】
发信人: xykkkk (asdf), 信区: Programming
标 题: 老码农冒死揭开行业黑幕:如何编写无法维护的代码(zz)
发信站: BBS 未名空间站 (Fri Nov 28 13:28:27 2014, 美东)
如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid... 阅读全帖 |
|
x****k 发帖数: 2932 | 3 如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid latine dictum sit, altum sonatur.
(随便用拉丁文写点啥都会显得高大上。)
想挫败维护代码的程序员,你必须先明白他的思维方式。他接手了你的庞大程序,没有
时间把它全部读一遍,更别说理解它了。他无非是想快速找到修改代码的位置、改代码
、编译,然后就能交差,... 阅读全帖 |
|
h***o 发帖数: 1494 | 4 关于Florian Mueller发布的关于Android抄袭Java代码的文章里,存在两个疑问。
首先是第一组的7个抄袭的java文件(PolicyNodeImpl.java, AclEntryImpl.java,
AclImpl.java, GroupImpl.java, OwnerImpl.java, PermissionImpl.java 和
PrincipalImpl.java)都属于源代码里的测试分支。任何程序员都不会将测试代码放到
最终发布的
产品里。这些测试代码都是内部测试之用,以确保软件发布前的质量。
然后是另外一组的37个抄袭文件,他们确实被打包成一个叫做MMAPI.zip的文件里了,
并为了对某个类
型的芯片组进行支持而进入了音频驱动原生代码库里。这其实是值得深入挖掘的部分,
但仔细检查之后
你会发现这些文件也并未随Android发布出来,Google里确实有人开始不小心将它们放
进了最终代码
里,但后来都删除了。
再说说第一组的7个文件,他们都是Sun发布在自己网站上的,帮助开发者测试自己的代
码debug之用。
但有Android或Harmony开发者用他们反... 阅读全帖 |
|
l**********7 发帖数: 55 | 5 为了测试,很多时候代码里包含了很多用宏定义的测试代码,例如:
#ifdef DEBUG
printf("i=%d\n", i);
#else
j=0;
#ifdef GCD
k=100;
#endif
#endif
现在想把DEBUG那部分的代码清理掉,变成:
j=0;
#ifdef GCD
k=100;
#endif
比较麻烦的是 1)不能展开include包含的文件 2)不能影响定义的其他的宏。
cpp肯定不行。不知道板上的大侠们有没有比较好的方法做到这一点?
谢谢。 |
|
k****f 发帖数: 3794 | 6 有源代码么?加profile选项编译就可以测试每个函数时间
或者自己加入测试代码算时间 |
|
j******a 发帖数: 100 | 7 -不要用macro定义常量,const 或者 enum更好,类型安全
-class + accessor 比起struct的代码可读性更好,编译器也会消除overhead
- 测试代码不要跟主体代码写在一个文件里
其实是习惯问题,我刚毕业那会很注意,现在看别人的代码看多了觉得无所谓,很多大
牛都这么随意
-TicketPool allocate/free 线程不安全
他link了RT lib, glibc里的实现是有锁的,你可以下个glibc看
-read/write没有处理 EINTR, 当然整个异步io的实现就是错误的
这个非常对 |
|
s********e 发帖数: 340 | 8 有一个面试题,是让用测试驱动TDD的方式开发和测试一个小程序。程序是:
写一个程序,打印从1到100的数字,如果这个数字是3的倍数,那么就打印AAA,而不是
打印出这个数字,如果这个数字是5的倍数,就打印出BBB,而不是打印出这个数字,如
果这个数字是即是3的倍数,也是5的倍数,就打印出AAABBB.
单纯写这个程序很简单,但是要用TDD的方式写出测试驱动就比较费解。主要是不知道
TDD的测试代码该如何写才能实现单元测试。 请指教,希望能给出程序和解释。
此外,请问如果一个方法没有返回值,是void的,该如何用做单元测试呢? |
|
k*******r 发帖数: 90 | 9 免得一些初学者还被误导了:
- 不要用macro定义常量,const 或者 enum更好,类型安全
- C++ 里面有个东西叫构造函数,struct也可以用
- class + accessor 比起struct的代码可读性更好,编译器也会消除overhead
- TicketPool allocate/free 线程不安全
- read/write没有处理 EINTR, 当然整个异步io的实现就是错误的
- 测试代码不要跟主体代码写在一个文件里
没工夫仔细看里面的逻辑,也没兴趣 |
|
g*******u 发帖数: 3948 | 10 比如写了class 需要写test 代码吗?
一般写的话怎么写? 就是自己搞几个模拟的数据 作为输入 看看输出书不是预期?
不知道我理解对不对
求解
多谢 |
|
r*******n 发帖数: 3020 | 11 还是关于查资料,
比如 客户要求加入新的功能,而我又不确信能做,
需要查资料,甚至要写一点测试代码,
那这个时间怎么算?
或者说合同里没有直接拒绝,或作为下一个版本功能。 |
|
w*********g 发帖数: 30882 | 12 丰田一绝 - 28万行代码竟有1万多全局变量,庞大的bug培养基地
来源: 日理万机 于 2013-11-07 05:22:57 [档案] [博客] [旧帖] [给我悄悄话] 本文
已被阅读:249次 字体:调大/调小/重置 | 加入书签 | 打印 | 所有跟帖 | 加跟贴 |
查看当前最热讨论主题
More Sharing Services
转贴自:http://club.tgfcer.com/thread-6817371-1-1.html 网友Kuzuryuusen的文章
抗日的理论基础 -事后诸葛-
----------------------------
【第一部分】背景简介
前几年闹得沸沸扬扬的丰田刹不住事件最近又有新进展。十月底俄克拉荷马的一次庭审
,2007年一辆2005年凯美瑞暴冲(Unintended Acceleration,UA)致一死一伤事件中
丰田被判有责。引起广泛关注的是庭审中主要证人Michael Barr的证词让陪审团同意丰
田的动力系统软件存在巨大漏洞可能导致此类事件。这是丰田在同类事件中第一次被判
有责。庭审过后丰田马上同意支付300万美元进入调解程... 阅读全帖 |
|
h***m 发帖数: 1869 | 13 ☆─────────────────────────────────────☆
lamxdotx (All is well) 于 (Sat Dec 15 03:43:30 2012, 美东) 提到:
标题看了也许有点搞笑,可是其实我是很伤心。我从学校毕业工作刚一年,被其他组
比较senior的人跟我们组的seniors说代码写的是一陀屎,背后说过一次(至少一次我
知道的),当我面也说过一次。我们组senior很生气,帮我跟人吵,背后也安慰我说
别组人就是看我资历浅欺负我(用的bully这个词),说如果我想也可以报告给那人上级,
要那人给我道歉。
这种情况我要怎么处理呢?我被当面说的时候那人也不是指着我鼻子说,只不过是说
有一个地方代码是一陀屎。我当时愣了想可能他不知道是我写的所以才当面说,就当
了包子。回来越想越伤心,我干活也算卖力,代码写的不少,倒有地方让人说一陀屎
了。还有就是大家这么大人了,我是被人多不当算才能被这么说?求开解
update:
给我做code review的人觉得没问题。事实上我根本是按照我们组内的路线写的,别组
人说我写的不好其实也是煽我们组senio... 阅读全帖 |
|
S**I 发帖数: 15689 | 14 ☆─────────────────────────────────────☆
gzou (gzou) 于 (Thu May 12 02:26:35 2011, 美东) 提到:
马上就要G on site了,
求祝福。
下面是从本版收集到的Google的试题,便于大家查询。
申明:有的附带有解释说明的,也来自于本版或者网络,大家自己看, 不保证真确
http://www.mitbbs.com/article_t1/JobHunting/31847453_0_1.html
本人ECE fresh PhD,背景是电路/EDA,跟G业务基本没什么关系
同学内部推荐的,很简单的一次电面就给了onsite
题都不难,但是自己没把握好机会,出了一些小bug。
总的感觉,出错就是硬伤,宁可从最简单的算法写起,也不能出错。
电面:
1,Skip list, http://en.wikipedia.org/wiki/Skip_list
写code实现struct skip_list * find(struct skip_list *head, int value)
2,sorted array... 阅读全帖 |
|
S**I 发帖数: 15689 | 15 ☆─────────────────────────────────────☆
gzou (gzou) 于 (Thu May 12 02:26:35 2011, 美东) 提到:
马上就要G on site了,
求祝福。
下面是从本版收集到的Google的试题,便于大家查询。
申明:有的附带有解释说明的,也来自于本版或者网络,大家自己看, 不保证真确
http://www.mitbbs.com/article_t1/JobHunting/31847453_0_1.html
本人ECE fresh PhD,背景是电路/EDA,跟G业务基本没什么关系
同学内部推荐的,很简单的一次电面就给了onsite
题都不难,但是自己没把握好机会,出了一些小bug。
总的感觉,出错就是硬伤,宁可从最简单的算法写起,也不能出错。
电面:
1,Skip list, http://en.wikipedia.org/wiki/Skip_list
写code实现struct skip_list * find(struct skip_list *head, int value)
2,sorted array... 阅读全帖 |
|
j********x 发帖数: 2330 | 16 需要引入额外接口已达到所谓的test coverage是软件本身testability不足的一个表现
注意 这里并非要求为了test covergae 或者testability盲目地 形而上地去修改软件
本身 其本身都有权衡和考量团队具体情况的要求
但是 以此作为否定tdd或者testability这个提法的依据完全是莫名其妙 不能因为某种
指导方法发现了问题 而指出这种方法因为发现了问题所以本身有缺陷
实际当中 具有良好testability的代码大多具备以下特点:
1. 强内聚 低耦合 与此相反 松散而缺乏系统组织的代码从来都是测试的噩梦
2. 逻辑清晰 且有极强的自检能力 简单函数代码 看单元测试一目了然 复杂功能 集成
测试能提供极好的场景复现 此外对新生上手提供了好的例子 此外对于重构一类的系统
改进工作 好的测试简直是至关重要
3. 功能完备性和扩展性极好 testability好的代码能在测试中提前预判和感知功能扩
展性方面的缺陷 一个例子就是 不对称或者缺乏系统完备性的测试用例很好地暴露了代
码本身的设计缺陷 这跟高深的模型检测异曲同工 只不过相对更加下里巴人
测试也... 阅读全帖 |
|
o**********e 发帖数: 18403 | 17 一个故意不通过图灵测试的人工智能
2015-02-07 22:58 沈怀霜
阅读 133万+
人工智能很可能导致人类的永生或者灭绝,而这一切很可能在我们的有生之年发生。
上面这句话不是危言耸听,请耐心的看完本文再发表意见。这篇翻译稿翻译完一共三万
五千字,我从上星期开始翻,熬了好几个夜才翻完,因为我觉得这篇东西非常有价值。
希望你们能够耐心读完,读完后也许你的世界观都会被改变。
======================
内容翻译自http://waitbutwhy.com
原文地址:
The AI Revolution: Road to Superintelligence
The AI Revolution: Our Immortality or Extinction
转载请保留原文链接和翻译者 知乎 @谢熊猫君
=======================
我们正站在变革的边缘,而这次变革将和人类的出现一般意义重大 – Vernor Vinge
如果你站在这里,你会是什么感觉?
看上去非常刺激吧?但是你要记住,当你真的站在时间的图表中的时候,你是看不到曲
线的右边的,因为你是看... 阅读全帖 |
|
o**********e 发帖数: 18403 | 18 一个故意不通过图灵测试的人工智能
2015-02-07 22:58 沈怀霜
阅读 133万+
人工智能很可能导致人类的永生或者灭绝,而这一切很可能在我们的有生之年发生。
上面这句话不是危言耸听,请耐心的看完本文再发表意见。这篇翻译稿翻译完一共三万
五千字,我从上星期开始翻,熬了好几个夜才翻完,因为我觉得这篇东西非常有价值。
希望你们能够耐心读完,读完后也许你的世界观都会被改变。
======================
内容翻译自http://waitbutwhy.com
原文地址:
The AI Revolution: Road to Superintelligence
The AI Revolution: Our Immortality or Extinction
转载请保留原文链接和翻译者 知乎 @谢熊猫君
=======================
我们正站在变革的边缘,而这次变革将和人类的出现一般意义重大 – Vernor Vinge
如果你站在这里,你会是什么感觉?
看上去非常刺激吧?但是你要记住,当你真的站在时间的图表中的时候,你是看不到曲
线的右边的,因为你是看... 阅读全帖 |
|
w*********r 发帖数: 42116 | 19 近期,一家名为Aspiring Minds的印度公司对来自500多所印度高校的36,800名学生进
行了编程技能测试,以检测这些印度工程师们的编程能力、编程方法、运行时间复杂度
和测试案例覆盖度。然而检测结果表明:
只有36%的印度工程师
能写出可编译的代码(compileable code)
研究通过使用全球通用自动化检测工具Automata,用两道题目、60分钟时长,对参与测
试者以下四个方面进行测试,来评估测试者是否具有程序员工作要求的专业编程能力。
编程能力(Programming Ability):衡量正确运用算法、数据结构、数据相关性、解
答的相关程度
编程方法(Programming Practices):衡量代码相对工业界的水平以及代码的可读性
和实用性
运行时间的复杂性(Runtime Complexity):比较代码运行时间和最优代码运行时间的
差距
运行正确(Functional Correctness):代码的正确性。
研究结果表明:
只有36%的印度工程师能写出可编译的代码(Compileable code)。仅有14%能够为两道
题都写出可编译的代码,另有2... 阅读全帖 |
|
p***p 发帖数: 559 | 20 Java 下的 team 开发,一般采用 cvs(版本控制) + ant(项目管理) + junit(集成测试
) 的模式:
1. 每天早上上班,每个开发人员从 cvs server 获取一个整个项目的工作拷贝;
2. 拿到自己的任务,先用 junit 写今天的任务的测试代码;
3. 然后写今天任务的代码,运行测试,直到测试通过,任务完成;
4. 在下班前一两个小时,各个开发人员把任务提交到 cvs server;
5. 然后由主管对整个项目运行自动测试,哪个测试出错,就找相关人员修改,直到所
有测试通过。下班...
先写测试,再写代码的好处:
从技术上强制你先考虑一个类的功能,也就是这个类提供给外部的接口,而不至于太早
陷入它的细节。这是面向对象提倡的一种设计原则。好的测试其实就是一个好的文档,
这个类使用者往往可以通过查看这个类的测试代码了解它的功能。特别的,如果你拿到
别人的一个程序,对他写测试是最好的了解这个程序的功能的方法。 xp的原则是 make
it simple,不是很推荐另外写文档,因为项目在开发过程中往往处于变动中,如果在
早期写文档,以后代码变动后还得同步文档,多 |
|
M*V 发帖数: 3205 | 21 【 以下文字转载自 paladin 讨论区 】
发信人: kknn (浪客刀心@两条腿的青蛙), 信区: paladin
标 题: Re: ZT: 我们这样的软件公司怎么办 (转载)
发信站: BBS 未名空间站 (Fri Sep 23 20:57:37 2011, 美东)
贴个全的
Communix - 概述
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、
分支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如
前。
Communix - 早期发展
Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或
Communix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要么用DOS,要么作为
受Windows主机控制的远程终端,相比之下, Communix支持的机子很少,但移植
Communix的努力一直就没停止过。最早是以法国为主的一些人在巴黎、里昂等地移植过
,但失败了。
Co... 阅读全帖 |
|
h*h 发帖数: 27852 | 22 【 以下文字转载自 paladin 讨论区 】
发信人: kknn (浪客刀心@两条腿的青蛙), 信区: paladin
标 题: Re: ZT: 我们这样的软件公司怎么办 (转载)
发信站: BBS 未名空间站 (Fri Sep 23 20:57:37 2011, 美东)
贴个全的
Communix - 概述
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、
分支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如
前。
Communix - 早期发展
Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或
Communix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要么用DOS,要么作为
受Windows主机控制的远程终端,相比之下, Communix支持的机子很少,但移植
Communix的努力一直就没停止过。最早是以法国为主的一些人在巴黎、里昂等地移植过
,但失败了。
Co... 阅读全帖 |
|
k**n 发帖数: 3989 | 23 贴个全的
Communix - 概述
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、
分支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如
前。
Communix - 早期发展
Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或
Communix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要么用DOS,要么作为
受Windows主机控制的远程终端,相比之下, Communix支持的机子很少,但移植
Communix的努力一直就没停止过。最早是以法国为主的一些人在巴黎、里昂等地移植过
,但失败了。
Communix - 俄版Communix
此后Communix分成两条路发展,一条是删除一些不兼容的代码,把Communix移植到
Windows运行;反对微软的另一批人在俄国著名程序员 Lenin的领导下,在俄国移植
Communix获得成功(第一次发行时称为俄版Communi... 阅读全帖 |
|
t*n 发帖数: 14458 | 24 看不动
累
贴个全的
Communix - 概述
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、
分支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如
前。
Communix - 早期发展
Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或
Communix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要么用DOS,要么作为
受Windows主机控制的远程终端,相比之下, Communix支持的机子很少,但移植
Communix的努力一直就没停止过。最早是以法国为主的一些人在巴黎、里昂等地移植过
,但失败了。
Communix - 俄版Communix
此后Communix分成两条路发展,一条是删除一些不兼容的代码,把Communix移植到
Windows运行;反对微软的另一批人在俄国著名程序员 Lenin的领导下,在俄国移植
Communix获得成功(第一次发行时称为俄版... 阅读全帖 |
|
X****r 发帖数: 3557 | 25 个人看法:
1.想好了再写。先确定设计和接口再具体实现。设计和接口注意一定的通用性和扩展性
。实现的时候注意封装而不要抄近路。当你感到有迫切的抄近路的需求的时候多半说明
你的设计有问题。随着代码的发展和需求的变化原来的设计和接口一定会过时,所以要
有重构(refactoring)是开发中的常态的准备。
2.测试,测试,测试!从单元测试到集成测试,都要自动化,并且覆盖面尽可能得广。
测试是软件质量的第一道也是最后一道防线。
3.Code defensively(不知道中文怎么说)。首先是代码单元(比如函数和方法)必须
完全实现所宣示的功能而不依赖于额外的假设,比如按一定格式输出一个数,如果这个例程
没有声明只接受一定范围的数的话(除非有这样的必要,不然一般也不应该有这样的声
明),即使在当前的程序里这个数不可能超出这个范围也不要依赖于这个条件。更进一步
的,即使输入不完全符合接口,根据情况也可以考虑尽可能地完成操作,不过这种情况下要
留下记录,而且未必适合所有情况。
4.代码的可读性也很重要。没有比改一段自己还不太明白的代码更容易造成隐患的了。 |
|
p*********w 发帖数: 23432 | 26 Communix 操作系统简介zz
http://www.hudong.com/wiki/Communix
(如果看不见了,可能是communix系统正在 reboot)
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、分
支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如前
。
纠错 编辑摘要
目录
1 概述
2 早期发展
3 俄版Communix
4 重要的修改版本
5 dDF子系统
Communix - 概述
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、分
支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如前
。
Communix - 早期发展
Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或 C
ommunix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要... 阅读全帖 |
|
l*s 发帖数: 6372 | 27 【 以下文字转载自 Military 讨论区 】
发信人: lys (Upekkha~~~~~~), 信区: Military
标 题: Communix操作系统简史
发信站: BBS 未名空间站 (Wed Jan 4 18:17:16 2012, 美东)
一、无名氏初始版
Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或
Communix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要么用DOS,要么作为
受Windows主机控制的远程终端,相比之下,Communix支持的机子很少,但移植
Communix操作系统的努力一直就没停止过。——最早是以法国为主的一些人在巴黎、里
昂等地移植过,但失败了。
此后Communix分成两条路发展,一条是删除一些不兼容的代码,把Communix移植到
Windows操作系统中运行;反对微软的另一批人在俄国著名程序员Lenin的领导下,在俄
国移植Communix操作系统获得成功(第一次发行时称为俄... 阅读全帖 |
|
l*s 发帖数: 6372 | 28 一、无名氏初始版
Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或
Communix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要么用DOS,要么作为
受Windows主机控制的远程终端,相比之下,Communix支持的机子很少,但移植
Communix操作系统的努力一直就没停止过。——最早是以法国为主的一些人在巴黎、里
昂等地移植过,但失败了。
此后Communix分成两条路发展,一条是删除一些不兼容的代码,把Communix移植到
Windows操作系统中运行;反对微软的另一批人在俄国著名程序员Lenin的领导下,在俄
国移植Communix操作系统获得成功(第一次发行时称为俄版Communix Beta或Communix
3.0 Beta),一度做到15个主节点、20多个子节点的大规模并行Cluster,并影响到亚
洲、东欧、拉美等一些地方。
一个小插曲:在Lenin之后,俄版Communix项目的两个CEO对Communix 3.... 阅读全帖 |
|
p*********w 发帖数: 23432 | 29 Communix 操作系统简介zz
http://www.hudong.com/wiki/Communix
(如果看不见了,可能是communix系统正在 reboot)
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、分
支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如前
。
纠错 编辑摘要
目录
1 概述
2 早期发展
3 俄版Communix
4 重要的修改版本
5 dDF子系统
Communix - 概述
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、分
支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如前
。
Communix - 早期发展
Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或 C
ommunix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要... 阅读全帖 |
|
p*********w 发帖数: 23432 | 30 Communix 操作系统简介zz
http://www.hudong.com/wiki/Communix
(如果看不见了,可能是communix系统正在 reboot)
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、分
支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如前
。
纠错 编辑摘要
目录
1 概述
2 早期发展
3 俄版Communix
4 重要的修改版本
5 dDF子系统
Communix - 概述
Communix是流行操作系统的一种。曾经与Windows并称世界两大主流操作系统。版本、分
支众多。采用单一内核模式和集中式系统资源管理模式。但目前装机数量已经大不如前
。
Communix - 早期发展
Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或 C
ommunix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要... 阅读全帖 |
|
c*********k 发帖数: 4747 | 31 Communix操作系统最早是两个德国人Marx和Engles开发的(称为Communix基础版,或
Communix 1.0和2.0),遵守GPL,它的早期支持者曾经先后组织过两个国际讨论区。
当时少数先进的国家都使用微软的Windows,其他的绝大多数国家要么用DOS,要么作为
受Windows主机控制的远程终端,相比之下, Communix支持的机子很少,但移植
Communix的努力一直就没停止过。最早是以法国为主的一些人在巴黎、里昂等地移植过
,但失败了。此后 Communix分成两条路发展,一条是删除一些不兼容的代码,把
Communix移植到Windows运行;反对微软的另一批人在俄国著名程序员 Lenin的领导下
,在俄国移植Communix获得成功(第一次发行时称为俄版Communix beta或Communix 3.
0beta),一度做到15个主节点、20多个子节点的大规模并行Cluster,并影响到亚洲、
东欧、拉美等一些地方。
一个小插曲:在Lenin之后,俄版Communix项目的两个CEO对Communix 3.0正式版出现了
意见分歧。占多数的Stali... 阅读全帖 |
|
z****e 发帖数: 54598 | 32 写出低质量的代码的特征包括但不限于:
心安理得地写出低质量的代码
最终写出了低质量代码却不在之后改善它
自以为写出了质量很高但实际质量很低的代码
低质量的特征包括但不限于:
文件关系混乱
注释过期、不明确或者没有
文档过期、不明确或者没有
架构乱设计
过度设计
不检查用户输入的错误情况
不检查API或者函数返回的errorcode或者exception
没有单元测试等自动化测试过程
编译起来很难
到处复制代码,公用的部分不整理成内部库
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:匿名用户
链接:http://www.zhihu.com/question/24665029/answer/28567915
来源:知乎
我很久很久以前曾经经历的一个公司特别傻比,人力资源和svn管理员不懂程序。作为
服务端的主程序,一直以来都是代码精简,效率最优,没有冗余为毕生追求。突然我无
意中发现了一个秘密,我的绩效居然不如几个公司刚招进来的新手。我每天刻苦努力,
优化代码,让公司的服务端7*24稳稳跑在服务器上,还一心研究各种热切换,换来绩效
考核好久没有优秀了。这究竟... 阅读全帖 |
|
s***a 发帖数: 1 | 33 月初的时候去西雅图面试M,一上午4轮,吃完饭下午给结果。
第一轮先问了些基本情况,然后代码题是检验一个树是不是BST。写完之后,让我测试
代码,提供test case,然后问了下代码怎么样写能够更简洁。
第二轮两道题,一道是反转链表,另一道是两个stack来模拟queue。
第三轮是反转字符串,就是''Happy Christmas''变成''Christmas Happy''。写完之后
是测试代码,提供test case。写的过程中还顺便问了点其它问题:Java和C++有什么异
同,怎么用C++实现garbage collection,还问了一题,我不会,现在忘了。
第四轮先让我merge两个链表,然后是测试代码,提供test case。又问了一道怎么检验
链表有没有cycle的问题。
整个过程中我自己感觉反转字符串没写好,总是改来改去,其他几题我自己感觉还回答
的挺好的。
下午发offer,SDE级别未知,100k base。因为M是第一家让我去onsite的公司,我也挺
想去的,所以就从了。
另外求版友指点:
M的performance review是怎么一回事?
距离开工还有半... 阅读全帖 |
|
q****x 发帖数: 7404 | 34 【 以下文字转载自 JobHunting 讨论区 】
发信人: shana (shana), 信区: JobHunting
标 题: 报M的offer 附面经 求指导
发信站: BBS 未名空间站 (Fri Nov 30 22:23:41 2012, 美东)
月初的时候去西雅图面试M,一上午4轮,吃完饭下午给结果。
第一轮先问了些基本情况,然后代码题是检验一个树是不是BST。写完之后,让我测试
代码,提供test case,然后问了下代码怎么样写能够更简洁。
第二轮两道题,一道是反转链表,另一道是两个stack来模拟queue。
第三轮是反转字符串,就是''Happy Christmas''变成''Christmas Happy''。写完之后
是测试代码,提供test case。写的过程中还顺便问了点其它问题:Java和C++有什么异
同,怎么用C++实现garbage collection,还问了一题,我不会,现在忘了。
第四轮先让我merge两个链表,然后是测试代码,提供test case。又问了一道怎么检验
链表有没有cycle的问题。
整个过程中我自己感觉反转字符串没写好,总... 阅读全帖 |
|
y****n 发帖数: 743 | 35 说说我答这道题的思路:
如前所说,我认为test case与debug不在一条线上。我是按test case路线回答。原因
有三:
1. 这是测试职位,我们尽量按照测试思路。
2. 后面的问题是Bug Report,如果现在去debug了,后面就没法report了。
3. debug不属于tester常规工作范畴。
正常来说,大多数SDET的主要工作是针对某产品功能的自动化测试,也参与一些项目设
计,手工测试等等。所谓,debug主要是debug测试代码,而不是产品代码。
当然如果时间允许,你走的越深,debug出更多信息,经理们越高兴。但这不是必需的
,也不是最高优先的,至少作为tester如果你没有debug一般不会受到指责。从时效上
讲,developer去debug自己的代码应该更顺畅。
当出现问题时,头头们更关心这个问题的严重程度和受影响的人群,Developers关心什
么情况会出问题。这些都需要tester提供信息。但如果你把时间花在debug上,而不能
提供这些信息,问题就严重了。
即便你debug成功了,发现了问题,那么bug report要写什么呢?
问题描述还是修... 阅读全帖 |
|
A********r 发帖数: 63 | 36 OSG裁员的原因:
1. 试问同级别的测试为公司创造出来的财富可以与开发比吗?
2. 最近几个产品开发过程中, 测试成为了拉产品后腿的负能量而受到很多抱怨 (WTF
is testability?)
3. 测试工具,代码是测试部门为了升级所创造出来的虚拟概念。99%的测试代码是垃圾
,99%有效的虫来自于人工测试。
4. 软件公司的工程师, 如果写不出产品质量的代码,就是浪费公司资源。如果写得出
,都已经成功转开发了。 |
|
l*****z 发帖数: 3022 | 37 【 以下文字转载自 JobHunting 讨论区 】
发信人: RichPerson (富婆), 信区: JobHunting
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂" (转载)
发信站: BBS 未名空间站 (Wed May 24 22:59:54 2017, 美东)
发信人: repeating1 (国民党不倒,中华民国不会好), 信区: Military
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂"
发信站: BBS 未名空间站 (Wed May 24 19:46:39 2017, 美东)
南京一家大型软件企业的年轻程序员小张(化名)万万没有想到,当他被传销组织控制
、几近绝望之时,自己尝试利用计算机“代码”向同事传递求救信息,他的程序员同事
们竟然“秒懂”,并赴天津协助警方,将他成功解救出来。
“五一”出游,不慎掉入传销组织“包围圈”
今年“五一”劳动节假期,小张买了一张去天津的火车票找同学玩。4月30日抵达天津
火车站时,他发现一位乘客一脸痛苦,于是上前询问。对方表示自己身体不舒服,而且
钱包被偷了。善良的小张拿出两百元给乘客,并将她护送到汽车... 阅读全帖 |
|
v*****1 发帖数: 2200 | 38 【 以下文字转载自 Dreamer 讨论区 】
发信人: Dreamer (不要问我从哪里来), 信区: Dreamer
标 题: 掉入传销程序员用代码求救 首字母组合“SOS”同事秒懂
发信站: BBS 未名空间站 (Wed May 24 23:25:05 2017, 美东)
要说知识改变命运,这话还是很有道理的。今年五一小长假期间,南京一年轻程序员掉
进传销组织,他尝试用代码求救,同事秒懂报警将其救出。
小张(化名)是南京一家大型软件企业的程序员,今年五一劳动节假期,他买了一张去天
津的火车票找同学玩。
4月30日,小张抵达天津火车站时,发现一位乘客一脸痛苦,于是上前询问。善良的小
张得知对方身体不舒服,而且钱包被偷后,不但拿出200元给该乘客,并将她护送到汽
车站。
5月1日,小张打算返程时,接到那位乘客的电话,对方表示要还钱给小张并请他吃饭。
小张答应见面,万万没有想到,那位乘客将他带进传销组织,十多个人把他身上的手机
等东西全部抢走,还限制人身自由,将其关在一处平房内。
小张说,传销组织派人和他“聊天”,打探其家庭及工作情况,希望通过控制小张,转
而欺骗小张的父母、亲戚索要... 阅读全帖 |
|
j**********r 发帖数: 3798 | 39 这哥们连senior都不够格,随便批几条。
"有些 C# 程序员,为了测试而加入大量的 interface 和 reflection,因为这样可以
在测试的时候很方便的把一片代码替换成 mock。结果你就发现这程序里每个类都有一
个配套的 interface,还需要写另外一个 mock 类,去实现这个 interface。"
没写过C#,但是有reflection的语言都有Mock类库,类似Mockito, JMockit之类都可以
让你避免写Mock类,并且不需要是interface。不懂得用类似类库写测试,还停留在手
工写mock的都是初级程
序员。
“为不可能再出现的 bug 大费周折,写 reproducer,构造各种数据结构去验证它,保
证它下次不会再出现,其实是多此一举。同样的低级错误就算再出现,也很可能不在同
一个地方。写测试不但不能保证它不再发生,而且浪费你很多时间。”
写个测试重现bug,以便于证明fix正确只是其中的一个目的。另一个目的是这个bug出
现,就说明这块地方缺乏coverage。不写测试,怎么保证将来别人修改相关代码,不会
出现相似的错误?这哥们纯以个人... 阅读全帖 |
|
R********n 发帖数: 3601 | 40 【 以下文字转载自 Military 讨论区 】
发信人: repeating1 (国民党不倒,中华民国不会好), 信区: Military
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂"
发信站: BBS 未名空间站 (Wed May 24 19:46:39 2017, 美东)
南京一家大型软件企业的年轻程序员小张(化名)万万没有想到,当他被传销组织控制
、几近绝望之时,自己尝试利用计算机“代码”向同事传递求救信息,他的程序员同事
们竟然“秒懂”,并赴天津协助警方,将他成功解救出来。
“五一”出游,不慎掉入传销组织“包围圈”
今年“五一”劳动节假期,小张买了一张去天津的火车票找同学玩。4月30日抵达天津
火车站时,他发现一位乘客一脸痛苦,于是上前询问。对方表示自己身体不舒服,而且
钱包被偷了。善良的小张拿出两百元给乘客,并将她护送到汽车站。5月1日,小张打算
返程时接到那位乘客的电话,表示要还钱给小张,请他吃饭。小张爽快答应见面,没想
到竟然被那位乘客带进了传销组织的“包围圈”。
“到了目的地,一下子出现了十多个人,把我身上的手机等东西全部抢走了,还限制人
身自由,关在一... 阅读全帖 |
|
R********n 发帖数: 3601 | 41 【 以下文字转载自 Military 讨论区 】
发信人: repeating1 (国民党不倒,中华民国不会好), 信区: Military
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂"
发信站: BBS 未名空间站 (Wed May 24 19:46:39 2017, 美东)
南京一家大型软件企业的年轻程序员小张(化名)万万没有想到,当他被传销组织控制
、几近绝望之时,自己尝试利用计算机“代码”向同事传递求救信息,他的程序员同事
们竟然“秒懂”,并赴天津协助警方,将他成功解救出来。
“五一”出游,不慎掉入传销组织“包围圈”
今年“五一”劳动节假期,小张买了一张去天津的火车票找同学玩。4月30日抵达天津
火车站时,他发现一位乘客一脸痛苦,于是上前询问。对方表示自己身体不舒服,而且
钱包被偷了。善良的小张拿出两百元给乘客,并将她护送到汽车站。5月1日,小张打算
返程时接到那位乘客的电话,表示要还钱给小张,请他吃饭。小张爽快答应见面,没想
到竟然被那位乘客带进了传销组织的“包围圈”。
“到了目的地,一下子出现了十多个人,把我身上的手机等东西全部抢走了,还限制人
身自由,关在一... 阅读全帖 |
|
H********g 发帖数: 43926 | 42 【 以下文字转载自 Military 讨论区 】
发信人: repeating1 (国民党不倒,中华民国不会好), 信区: Military
标 题: 程序员掉入传销组织用"代码"求救 同事"秒懂"
发信站: BBS 未名空间站 (Wed May 24 19:46:39 2017, 美东)
南京一家大型软件企业的年轻程序员小张(化名)万万没有想到,当他被传销组织控制
、几近绝望之时,自己尝试利用计算机“代码”向同事传递求救信息,他的程序员同事
们竟然“秒懂”,并赴天津协助警方,将他成功解救出来。
“五一”出游,不慎掉入传销组织“包围圈”
今年“五一”劳动节假期,小张买了一张去天津的火车票找同学玩。4月30日抵达天津
火车站时,他发现一位乘客一脸痛苦,于是上前询问。对方表示自己身体不舒服,而且
钱包被偷了。善良的小张拿出两百元给乘客,并将她护送到汽车站。5月1日,小张打算
返程时接到那位乘客的电话,表示要还钱给小张,请他吃饭。小张爽快答应见面,没想
到竟然被那位乘客带进了传销组织的“包围圈”。
“到了目的地,一下子出现了十多个人,把我身上的手机等东西全部抢走了,还限制人
身自由,关在一... 阅读全帖 |
|
y*********e 发帖数: 518 | 43 下午刚面完Google Mountain View,趁记忆还在,把经历写下来。
因为签署了NDA,所以不方便把题目直接贴在这里。只能说个大概。若是有兴趣的筒子
,可以私下交流。
早上10点半开始。面第一位阿三哥,开始侃项目,谈跟专业相关的东西,追问的很深,
最后还有15分钟的时候要求写代码,要求inplace对一个数据结构内的元素重新排序,
昏倒啊。在白板上画了简单的结构,讨论后获得首肯,然后开始写代码。
我把笔记本电脑带了过去,所以在键盘上敲。大概一会就写出来了。(若是在白板上写
,怎么死的都不知道阿)。然后三哥问,are you done?我说跑几个测试案例试试看。
然后在纸上写了5个案例,一行一行的检查。立马发现2个bug,更正之。三哥看到快没
时间了,说你跑这个案例试试。遂发现一个新的bug,更正之。最后代码写出来完整。
三哥满意的走了。
第二位是个白人。一上来就做题。开始我理解以为是一个DP,后来沟通之后发觉可以有
很简单的解法。直接奔向O(n)的解法。跟面官沟通完想法,最后获得同意后在笔记本上
敲键盘。很快写了出来。面官随后问测试案例。我直接在笔记本电脑里面写测试代码,
写 |
|
h**e 发帖数: 410 | 44 下周一有一个电话面试,30分钟左右,是DW(BI) developer位置,要求是
要很强的PL/SQL背景,Oracle以及MSSQL,另外,会Unix shell, perl, Java以及C++。
通知上说在电面中会让在线写一个简单的小程序(我这边敲代码,他们能看到一行行输
入)。我现在弄不明白这个是在线测试代码是用什么语言写,如果是Java还是什么别的
语言,都复习到的化时间不够阿。另外,我估计代码测试就10分钟时间,稍微复杂一点
的代码,光是几个class定义,就够麻烦了,或者光考PL/SQL,毕竟总共时间就那么多
,他们还要考我别的知识。或者就是算法题,随便java或C++?
请大家帮我参谋一下,一般这种DW(BI) developer位置的代码
在线测试考什么语言?谢谢! |
|
a****l 发帖数: 8211 | 45 我觉得屎一样的代码很多都是test-driven导致的,简单的说就是设计的时候没有想清楚
到底应该怎么做,然后糊糊涂涂写出来后狂测试,然后这个针对这个bug修补一点,针对
那个bug修补一点,整个东西最后象一件满是补丁的衣服,看上去还好使,接下来随便要
继续改点什么东西就全乱套了。我的观点是设计的思路和层次一定要正确,最痛恨有的
人坚持说“我的代码测试下来完全正常”。
很多弱旅写出来的东西的特征就是在他们特定的一个环境下没有任何问题,稍微转移到
一个略微不同的环境下就马上出问题,或者稍微要改变一下使用方法却发现根本不可能
,别人要修一下代码看了两秒就有种头晕目眩想吐的感觉,这种都是屎代码的通常形式。
you |
|
a**u 发帖数: 8107 | 46 ☆─────────────────────────────────────☆
runsun (runsun) 于 (Thu Jul 15 23:14:17 2010, 美东) 提到:
你是否知道为什么数学是如此的美,为什么很多现象都可以用数学来解释。为什么揭示
自然规律的物理必须要依赖于数学。为什么类似斯坦福大学赵午这样的顶尖物理学家竟
然敢说电子是抽象空间的抽象算符。
数学仅仅是人类抽象的产物吗?
不,他是宇宙的本质。
我们以为数学是毫无生命力的,但却不知道,生命依赖于它。
简单的二进制运算,可以运算出一个极度丰富的虚拟游戏世界,让无数人沉迷,未来的数学运算,可以算出超级计算机,可以算出智能机器人。
宇宙的数学运算,算出了电子,算出了种种法则,算出了整个宇宙。
我们所感知到的,所观察到的宇宙以及所谓的客观世界,不过是它的投射。是意识参与而形成的投射,虚幻不实。
宇宙本身就是数学。
数学,才是真正的真实。
上帝就是数学。
如果这段话能被保留100年,它会成为名言的:)
原始人是无法想象人怎么可能上天的,你,和他们差不多,都是极度无知。
☆─────────────────... 阅读全帖 |
|
h**e 发帖数: 410 | 47 下周一有一个电话面试,30分钟左右,是DW/BI developer位置,要
求是要很强的PL/SQL背景,Oracle以及MSSQL,另外,会Unix shell& Perl,Java以及C+
+。
通知上说在电面中会让在线写一个简单的小程序(我这边敲代码,他们能看到一行行输
入)。我现在弄不明白这个是在线测试代码是用什么语言写,如果是Java还是什么别的
语言,都复习到的化时间不够阿。另外,我估计代码测试就10分钟时间,稍微复杂一点
的代码,光是几个class定义,就够麻烦了,或者光考PL/SQL,毕竟总共时间就那么多
,他们还要考我别的知识。请大家帮我参谋一下,一般这种DW(BI) developer位置的代
码测试最可能考什么语言?谢谢! |
|
k*****3 发帖数: 226 | 48 yorm很小的.单元测试自己写几个案例就好了,代码包里面有一点简单的.另外
bureaufast也使用这个包,测试算充分吧.当然值得的话,我会继续写规范的测试代码.
bureaufast规模比较大一点,需要e2e测试,也需要很多样板数据,光数据库表就有五十几个
如果你关心的是企业式的功能测试,压力测试,公开测试,那需要好好计划和执行了 |
|
g*******e 发帖数: 140 | 49 难度应该是中等偏下,发挥一般,顺求bless
一共4轮技术面试,HM生病了,没见着。每轮2个工程师,一般是一个本地 + 一个远程
1st: 亚裔小弟弟+英式口音的大姐:
1. 项目自我介绍
2. 浮点bst,找greatest one in the tree that's smaller than the target,
二分搜索简单变形。我犯了个错误,但是自己dry run测试用例的时候发现更正了。另外
一个小问题要注意的就是处理查找结果不存在。
3. 类似utf8字符串(一个字符是单字节还是双字节取决于第一个字节的首bit),给定中
间一个字符,删除前面一个。在这道题上卡了一会,关键是弄明白向前查找的终止
条件是什么。
2nd: 一位老美大叔+老美小弟弟
1. 项目介绍
2. 从stream中找到top-k frequent items 用hash-table + priority queue解即可,
解释了一下时间复杂度。问了一下写什么测试用例来测试代码。
3. 扩展到多机器大数据上500mm数据,500台机器,怎么解。就是用hash mapping分散
数据到500台机器上,分... 阅读全帖 |
|