c*****c 发帖数: 564 | 1 最近在分析另一个组正在开发的一个程序,文档还没出来,没有architecture design
,只能慢慢啃。
以前在matlab里用过一个m2html的工具,对matlab写的代码包扫描一下,就能生成call
graph。
现在想找个类似的python工具,可以静态分析 Python package 并产生 call graph,
class hierarchy,UML 之类的工具,一直不成功,最接近的是 pyreverse,但似乎只
能分析单独的文件。
要求支持python2.7。代码需要调用一些软件,还没有license,没法运行做动态分析。
不知版上高手有什么好推荐的? |
|
q****x 发帖数: 7404 | 2 1. 遵循良好的代码规范。
2. 代码量适中,比如十万行以内。
3. 解决的是基础性、通用性的问题,读懂后有收获。
4. 作者是公认的权威,保证1、2、3得到普遍认可。
知乎上推荐leveldb in C++。Java和Python有没有类似的项目可以学习? |
|
Y**G 发帖数: 1089 | 3 要擦屁股说明王垠的训练还不够。好的程序员写出的第一遍代码就是优质的,这是由于
平时养成了良好的习惯决定的。
在正规公司里,出活意味这写出优质的代码。你要是还要不停的该,你的出活量就明显
受限制。
差的程序员写完后要不停的该才能拿出来见人。
更差的程序员是不知到哪里需要擦,别人指出后还耍无赖说不臭。
的。 |
|
|
r*g 发帖数: 3159 | 5 【 以下文字转载自 Joke 讨论区 】
发信人: neutrino2012 (八重云), 信区: Joke
标 题: 代码风骚
发信站: BBS 未名空间站 (Fri Aug 8 14:02:51 2014, 美东)
原帖:
http://tieba.baidu.com/p/2875297422
本人学识渊博、经验丰富,代码风骚、效率恐怖,
c/c++、java、php无不精通,熟练掌握各种框架,
深山苦练20余年,一天只睡4小时. 千里之外定位问题,瞬息之间修复上线。
身体强壮、健步如飞,可连续编程100小时不休息,讨论技术方案5小时不喝水,上至带
项目、出方案,下至盗账号、威胁pm,啥都能干。
泡面矿泉水已备好,学校不支持编程已辍学,家人不支持编程已断绝关系,老婆不支持
编程已离婚,小孩不支持编程已送孤儿院,备用电源万兆光纤永不断电断网,门口已埋
雷无人打扰 |
|
z*******3 发帖数: 13709 | 6 6000多行一个类,你一回事,我做不到一回事
ide太重要了,我手头这个代码量已经上百万行了
我一个人都contribte几万行了
我现在明白为什么当有人说他写过20万行代码之后
有些人不信了,不同语言的productivity是不一样的 |
|
z*******3 发帖数: 13709 | 7 做女人,还是不要碰这种代码
会很痛苦的,当然你生产,让别人去维护
那会舒服一点,反正这种代码我是绝对不愿意接盘的
java不是没有这种项目,但是每一次接盘的不是自己滚蛋
就是被赶走,可能美帝要绿卡要身份,这种罪就不得不受
其他国家pr容易搞一点,所以跳槽跑路的就会比较多 |
|
z*******3 发帖数: 13709 | 8 工程不是你说的么?
你说我没工程这概念
言外之意不就是你有么?
你觉得对比我修理这一庞然大悟,真有么?
你觉得是越大越需要工程
还是越小越需要工程?
你觉得上百万行代码还能运行,是不是工程的功劳
如果连工程都没概念的话,上百万行代码会不会轰然坍塌?
我觉得会 |
|
z*******3 发帖数: 13709 | 9 还谈什么开发
vi写出来的代码基本上都是垃圾
看都不想看,无论谁写的,包括我自己写的
都不想看,时间一久,全忘了
我反正是很不愿意去接盘这种项目的
你们谁愿意谁去
good luck |
|
c********1 发帖数: 421 | 10 一些公司招人,用github
原因很简单,linkedin的吹水,阿三们最善长
但代码写得好不好,github上一眼就能看出来。 |
|
c*********e 发帖数: 16335 | 11 恩,建议慎用github,写的代码让人看着笑,还不如不让他看到。 |
|
c********1 发帖数: 421 | 12 写的代码如果能让人看着“笑”,而不是让人看着皱眉头, 也是一种本事 |
|
d*******n 发帖数: 217 | 13 小弟最近在建个人网站,无奈不是科班出身,只能边建边学。现在发现更新代码后,要
把浏览器历史记录清空才能显示新内容。请问各位大牛加什么代码能让浏览器不贮存记
录啊?我用的都是原始的HTML, php, Ajax. 感谢!一直点清空历史受不了 |
|
z****e 发帖数: 54598 | 14 自动生成代码你不如说是自动生成注释
如果你纠结于代码行数的话
set/get读起来比case class要容易太多
set/get看不懂属于iq问题
case class看不懂,这个就是没学过,当然iq达不到也看不懂
没学过很正常,当你一个软件需要phd才能做的时候
多半前途就堪忧了,市场一般就小很多 |
|
p***o 发帖数: 1252 | 15 别提lex/yacc,每次都有问题,不是flex/bison版本太新没法生成中间代码,
就是gcc版本太新没法编译中间代码。 |
|
c******g 发帖数: 4889 | 16 蟒蛇不是老推崇说只有一种方法写代码吗?怎么代码也没有易读性? |
|
z****e 发帖数: 54598 | 17 那你太理想了
等机器会写代码
skynet差不多可以准备屠杀人类了
现阶段还只能指望人来维护代码 |
|
z****e 发帖数: 54598 | 18 lol
这样做也便于维护
要写成上万行得java代码也不是不可以
全部扔static里面去就行了
但是一个文件超过5000行的代码属于不可维护的
这就是屎坑
傻逼看了屎坑才不跑,非要在里面呆着
实践中,一般超过500行就要分了,已经是上限了
200行就分比较理想 |
|
h*****a 发帖数: 1718 | 19 自动生成的代码不是什么问题吧。读代码有几个人一行一行读啊。IDE还能让读code更
容易。 |
|
z****e 发帖数: 54598 | 20 “这些代码对于程序运行仍然是必要的。”
那些代码都是ide自动生成的
其实大多数人说的话,90%以上也都是无价值的
gre考试阅读时候难道你逐行看过去?
还是找你需要的看?
其实对于人来说,90%的活动也都是无价值的
你真正survive只需要把吃饭时间搞定就好了
吃饭一天吃两个小时顶天了,剩下时间都在消耗
嗯,这么说起来还有打炮繁殖的时间,那这个一天也顶多再两小时
剩下睡觉时间其实你的大脑并不在思考,繁殖其实也不是必需的
话说,人存在的意义是啥? |
|
L***s 发帖数: 1148 | 21 光数行数是不对的。应该数时间。
比如maintenance工作,大部分时间不是花在写代码上,
而是在别人写的代码里游泳,找到改的地方。
可能最终只有几行修改,但可能要耗费两三天时间。
另外,很多时间也花在communication上,
get all stakeholders on the same page. |
|
|
b*******s 发帖数: 5216 | 23 放在云里有一个好处,比如你在国内做一家公司,要雇几个工程师,但是你不希望他们
能接触到核心库的代码,用两个云节点加上你自己写一些编译脚本,可以做一个发布系
统,保证代码隔离,他们晚上把全公司硬盘都偷了都没有用,而且编译出来的东西有一
些隐秘的数字签名在里面,和服务器上的记录可以匹配作为司法证据 |
|
w***g 发帖数: 5958 | 24 我随便问问。要想的话就是没听说过直接的办法,你就不必费心了。
不过现在的小公司,不都是python, ruby, javascript,php啥的,直接上java的怕是少
吧。美国的公司我觉得一般不怎么防员工偷代码。我做过的或是听说的,都能看最核心
的代码。 |
|
b*******s 发帖数: 5216 | 25 以我和国内一些用户接触的结果,提供服务他们是不喜欢的,花了钱还被你控制着,你
要加维护费他们也没辙。喜欢一次买断,服务再议的较多见。python编译成pyc不是很
有效的办法,像你说的,还是要做代码混淆。但代码混淆第一个不是那么可靠,带进莫
名其妙bug可能性不小,出错了麻烦,也不是绝对不能逆向
前面某位,把问题一直想简单了 |
|
w***g 发帖数: 5958 | 26 其实和软件项目一样,大家都喜欢往里加代码,但谁也不敢轻易去掉已有的代码。 |
|
C*******n 发帖数: 193 | 27 【 以下文字转载自 Movie 讨论区 】
发信人: Caprician (Caprician), 信区: Movie
标 题: martian的作者现在还在写代码
发信站: BBS 未名空间站 (Sun Oct 11 11:23:18 2015, 美东)
martian的作者现在还在写代码....佩服 |
|
p**r 发帖数: 5853 | 28 我说实话,我一直都心安理得的写低质量代码,
有时候我看看我自己写的,真是觉得狗屎都不如。
但是没办法,单位时间出货,能赚钱是最重要的。
看看公司那些其他部门的那些逼人,
一个10分钟就可以解决的问题,
非要飞来飞去的,浪费10来个人的机票酒店+薪水扯蛋研究,
你写再低质量的代码你也就心安理得了。 |
|
S*******e 发帖数: 525 | 29 同感!现在在的一个小组里(咱公司本身很大),我们从不做codereview,代码咱随便
写,别人的代码经理让咱把关,咱也一目十行的看几眼。
经理想帮咱做校长,director也帮咱写材料,他娘X的,这还得SVP亲自把关,VP同意都
没用。SVP昨天有个townhall,听了咱就死了这心了。想想,就是“你写再低质量的代
码你也就心安理得了”。 |
|
a****u 发帖数: 1537 | 30 来自主题: Programming版 - 代码开源了 为啥是一片叫好,版上没人觉得代码很烂吗?
无注释,magic number。话说受过专业训练的人代码都不是这样写的啊。
此外没有I/O,这样的程序怎么运行?是测谁的机器主频快? |
|
g****u 发帖数: 252 | 31 来自主题: Programming版 - 代码开源了 老魏不是搞开源的人,据说有很多大招还藏着掖着。
他放出来的代码里面搞不好也会有烟雾弹,好
防止别人直接拿了他的代码去充工作量。 |
|
d****i 发帖数: 4809 | 32 顶,这个版上能够直接在Github上把自己的代码全部亮出来让大家看和测试的目前也就
是老魏和wdong了。编程版还是应该有编程版的本质回归,空话少说,代码为王。 |
|
x****u 发帖数: 44466 | 33 你打滚除了显示出自己的无知,还有什么意义?
人类很难做 / 技术上做不到都理解不了?
前者最简单例子,就是各种内联,变量提取,针对流水线调整,可以手动做但都是体力
活,编译器可以把你的代码改得面目全非但执行结果等价。
后者大概超出你知识范围了,很多优化是人类不可能实现的。比如jvm可以让一次编译
出的bytecode在不同场景下变化成逻辑结构不一样的最优代码。这个只能机器做。
是因
的是 |
|
p*****y 发帖数: 1049 | 34 上面的第一段代码,锁的是代码,因为任何一个线程到这里就会与其他线程冲突。
整个函数全部被锁住了。 |
|
p**r 发帖数: 5853 | 35 以前写个东西多麻烦,显示个卡通人物,
还得算半天坐标,弧度曲线之类的。
现在就是一行代码,以后越来越简单+对人类语言的识别更精确后,
程序员就只要会BB就行了,也就是人人都是程序员。 |
|
w********m 发帖数: 1137 | 36 要是代码都能写在在19行*19列内的棋盘里面,机器肯定没问题 |
|
|
发帖数: 1 | 38 人类语言的不确定性和程序语言确定性之间的分歧很难解决,如果通过另一种确定性的
高级语言来解决,其实我们已经解决了一部分,java->中间语言->jit->native code。
无非将来在java的前头再多加另一层确定性的高级语言,不过这种代码性能肯定成问题
,到时候需要调优员,代码生成器维护者,一般人也干不了,还是程序员。 |
|
发帖数: 1 | 39 人类语言的不确定性和程序语言确定性之间的分歧很难解决,如果通过另一种确定性的
高级语言来解决,其实我们已经解决了一部分,java->中间语言->jit->native code。
无非将来在java的前头再多加另一层确定性的高级语言,不过这种代码性能肯定成问题
,到时候需要调优员,代码生成器维护者,一般人也干不了,还是程序员。 |
|
w**********5 发帖数: 1741 | 40 程序员的办法
FORTRAN程序员:
01 打开冰箱门
02 把大象放进去
03 关上冰箱门
04 如果还有大象,GO TO 01
APL程序员:
写了仅仅一行代码,不但把大象装进去了,还能控制冰箱在万米高空变形,演算飞行姿
态和火力控制,并和数以万计的外星人飞船战斗。
C 程序员:
将大象编码成二进制文件,然后编译进冰箱的程序代码里。
JAVA程序员:
你还在用面向过程的思维看问题?一个设计良好的冰箱必然封装了相应的方法,所以你
只要调用“冰箱.放入动物(大象)”就行了。
COBOL 程序员:
对和自己一样濒临灭绝的大象寄予了深切的同情。
汇编程序员:
将栈命名为冰箱,然后 PUSH 大象。
算法学家:
用Lempel–Ziv–Welch压缩算法将大象压缩。
网络安全专家:
把大象放进冰箱会使冰箱的冷冻区溢出,这将导致攻击者获得冰箱的系统权限。
硬件工程师:
我可以用随身携带的瑞士军刀把冰箱的各部分拆下来,然后连同大象装在一起。 |
|
n******7 发帖数: 12463 | 41 也就是读起来最舒服的语言,我觉得首先是FP
相当于读文章,FP写的是我干了这个,干了那个,一目了然;而不是我这么弄那么弄之
类琐碎的描述。
FP里面最优美的是clojure,有适量的符号,让代码简短,但是也没有到滥用让人摸不
到头脑的地步(Brainfuck)。看一片代码感觉就像看一个机械的模型,五脏六腑都给你
标注出来,各个部分怎么连接的一清二楚,感觉很爽。 |
|
z****j 发帖数: 65 | 42 我也不知道为什么,我编写的html代码总是无缘无故的加入
下面的代码,不知道为什么,
|
|