由买买提看人间百态

topics

全部话题 - 话题: refactor
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)
o**2
发帖数: 168
1
来自主题: Programming版 - FMP tutorial
最近正在写一个learn fast messenger programming by example的tutorial。计划有
以下这几篇,前三篇已经完成了,在http://fastmessenger.com/knowledgebase/
已完成:
Example 1: Create a FMP program from refactoring
Example 2: Create a FMP program from scratch
Example 3: Implement active objects
快完成:
Example 4: An active object is a single headcount
Example 5: An active object could be a group headcount
Example 6: Active objects in GUI programs
(注1:single headcount概念用来说明一个active object在处理能力上相当于一个单
人。)
(注2:group headcount概念用来说明一个active ... 阅读全帖
s*****n
发帖数: 5488
2
本班也就是这个层次啊。
copy paste比做refactor简单多了。再说大多数公司都是数bug论英雄。谁不candp谁是
傻逼。
N********n
发帖数: 8363
3
来自主题: Programming版 - C#中如何share Pre-processing directives
Macro definition is a major no-no in modern programming language as
it could ruin intellisense and tooling support.
Imagine you have a macro like this:
#ifdef SOMETHING
#define SCREW_UP {
#else
#define SCREW_UP }
#endif
Now what is SCREW_UP when it's used in your code to an IDE, { or }?
When such macro shows up, IDE is all confused and thus cannot run
intellisense or refactoring properly. This is one major reason why
MARCO definition is dropped from modern PMs.
o**2
发帖数: 168
4
来自主题: Programming版 - Java 多线程 的架构如何改进?
一般来说,程序能按当时设计的要求运行就是一个成功的程序。你是想与时俱进?还是
程序出现了问题?还是要扩充程序?
想学先进的并发编程技术的话,你可以看一下Fast Messenger Programming,包括主站
fastmessenger.com和我在本版发的post。
真想要refactor这个程序的话,你要做的第一件事是画出你的这个程序的thread模型图
。比如以一个thread为主线(也就是从execution path的角度),把该thread会执行到
的classes列在其名下,然后再列出有多个thread可能同时执行到的classes等。
c******o
发帖数: 1277
5
来自主题: Programming版 - scala 真是一个无法无天的糟货
最近公司开始做scala的大项目了。
scala 绝对是牛东西,但是确实要求高。
其实最简单的方法就是,先写java like code,慢慢再改,再refactor
即使是java like code也比java舒服多了。
never want to go back to java/ruby/php
其实好的scala code绝对比java好读,负担主要在library designer身上,
application developer 用合适的library, 就像写作文一样
c******o
发帖数: 1277
6
来自主题: Programming版 - scala 真是一个无法无天的糟货
编了两个月,说说scala/play/reactivemongo/mongodb的感受:
1. function programming和imperative programming的理念实在不一样,要适应。实
在不行就先写java like code,然后再refactor,程序越来越短,type越来越长。。
2. 基本上,只要写出来,想好了,编译过,就没什么bug,很奇妙的感觉。
3. 好好看看monad, 奇妙的东西,理论上什么side effect都可以用monad解决。
推荐
http://www.amazon.com/Programming-Scala-Comprehensive-Step---St
http://www.amazon.com/Scala-Depth-Joshua-D-Suereth/dp/193518270
http://www.manning.com/bjarnason/
c******o
发帖数: 1277
7
来自主题: Programming版 - scala 真是一个无法无天的糟货
编了两个月,说说scala/play/reactivemongo/mongodb的感受:
1. function programming和imperative programming的理念实在不一样,要适应。实
在不行就先写java like code,然后再refactor,程序越来越短,type越来越长。。
2. 基本上,只要写出来,想好了,编译过,就没什么bug,很奇妙的感觉。
3. 好好看看monad, 奇妙的东西,理论上什么side effect都可以用monad解决。
推荐
http://www.amazon.com/Programming-Scala-Comprehensive-Step---St
http://www.amazon.com/Scala-Depth-Joshua-D-Suereth/dp/193518270
http://www.manning.com/bjarnason/
c******o
发帖数: 1277
8
来自主题: Programming版 - scala 真是一个无法无天的糟货
编了两个月,说说scala/play/reactivemongo/mongodb的感受:
1. function programming和imperative programming的理念实在不一样,要适应。实
在不行就先写java like code,然后再refactor,程序越来越短,type越来越长。。
2. 基本上,只要写出来,想好了,编译过,就没什么bug,很奇妙的感觉。
3. 好好看看monad, 奇妙的东西,理论上什么side effect都可以用monad解决。
推荐
http://www.amazon.com/Programming-Scala-Comprehensive-Step---St
http://www.amazon.com/Scala-Depth-Joshua-D-Suereth/dp/193518270
http://www.manning.com/bjarnason/
c******o
发帖数: 1277
9
来自主题: Programming版 - scala 真是一个无法无天的糟货
最近公司开始做scala的大项目了。
scala 绝对是牛东西,但是确实要求高。
其实最简单的方法就是,先写java like code,慢慢再改,再refactor
即使是java like code也比java舒服多了。
never want to go back to java/ruby/php
其实好的scala code绝对比java好读,负担主要在library designer身上,
application developer 用合适的library, 就像写作文一样
m*******l
发帖数: 12782
10
来自主题: Programming版 - node.js又赢了
这要看这15.5万是老中写的,还是烙印写的.
考,有些代码水 1屁, 根本没有refactor
m******t
发帖数: 635
11
来自主题: Programming版 - node.js又赢了
就算refactoring砍一半, 7万行Java对4000行Clojure也是很惊人啊
c******o
发帖数: 1277
12
来自主题: Programming版 - Scala 1-star, would not program again
现在还没多少10万左右,但是每次新feature就会增加,每次refactor就会减少。
scalaz is not for everyone. 我们用了它的validation abstraction,还有generic
的applicative
scalaz不是花,是太抽象了,没想到之前你都不知道为啥要它,想到之后你会说:“靠
,这个原来和那个是一样的,还能这么做,不用写两遍了”
c*********e
发帖数: 16335
13
来自主题: Programming版 - 学会任何编程语言只需高中毕业
en,见过很多程序员装b,口里经常就是solid,refactor,ood,factory,理论知识一套一套
的。其实,编程就是高中生都能干的活。
很多高中生,编程多年后,发现没啥意思,就想继续读本科,硕士。。。
t*****n
发帖数: 4908
14
来自主题: Programming版 - 关于语言的争论总结一下
碰到虚函数tag就傻了。调用关系图也很有用。还是类继承关系图。还有函数/变量引用
等等。还有refactor。cdt真是非常牛。可惜java这个语言了。eclipse真是神器。
p*****2
发帖数: 21240
15
The light and thin nature of Node.js appealed to Prasad and his team more
than anything else. The extent of code reduction this allowed proved to be
huge—from 60,000 lines down to just a couple of thousand.
Our Node code base has grown a little from the original version, but it's
still on the order of 1,000 to 2,000 lines of code. The Ruby code base we
were using previously, in contrast, was in the neighborhood of 60,000 lines
of code. The biggest reason for that reduction is that our current co... 阅读全帖
d******e
发帖数: 2265
16
来自主题: Programming版 - 二爷说的node beats Ruby其实很清楚啊
Absolutely. Our Node code base has grown a little from the original version,
but it's still on the order of 1,000 to 2,000 lines of code. The Ruby code
base we were using previously, in contrast, was in the neighborhood of 60,
000 lines of code. The biggest reason for that reduction is that our current
code base is essentially framework-free, which means there's just not a
whole lot of cruft in there.
The second big reason has to do with the more functional approach we're
taking now, as opposed ... 阅读全帖
d********g
发帖数: 10550
17
来自主题: Programming版 - 二爷说的node beats Ruby其实很清楚啊
我之前说的,1w vs 2k或者5k vs 2k更靠谱。6w vs 2k吹得太过简直就是无脑Ruby黑,
还暴露了
“In Ruby, the natural tendency is to create an object that essentially
wraps every communication and type. Even though Ruby is actually a
functional language, it has a much stronger notion of class and object than
does JavaScript. So in our earlier code base we had lots of layers of
abstraction and objects that had been created under the guise of greater
componentization, refactorability, and reusability. In retrospect, however,
we really... 阅读全帖
m********2
发帖数: 89
18
来自主题: Programming版 - 动态语言在后端永远不会主流
你这个Python vs JAVA比较的前提好像有点问题。
我觉得更客观的比较前提应该是:给定一个项目,一定的钱(开发人数 x 开发时间)。
这个前提之下,Python code少 -》出bug的几率会少;开发时间短 -》有更多的test/
debug时间。我觉至少理论上可以弥补Dynamic的一些缺点。
另外我觉得IDE navigation/refactoring 很重要(静态语言的优势);不过静态查错的
作用有点被高估的了。静态查错只能发现一些简单错误,跟TDD比起来可以忽略不计。
L*******r
发帖数: 119
19
来自主题: Programming版 - 建一个完整网站的tutorial或framework
web据说node.js非常好。后台用mysql就可以了,简单而且文档多。真的流量大了,就
到时候再说。
其实我觉得你干脆放弃web算了,直接做app。
说实话,要是流量上不去,随便搞,反正也没人用;流量真上去了再refactor吧。
L*****e
发帖数: 8347
20
来自主题: Programming版 - type inferience 好处是什么
不知道你如何定义“不必要的语法糖”,起码对这个type inference,我觉得和“茴香
豆的茴有四种写法的问题是不一样的。上面大家也指出了type inference对代码的易读
性,是否容易引入bug,是否更容易refactor维护都有影响,在LINQ里,使用anonymous
type更是必不可少,type inference也就变得必不可少。
当然,如果不正确使用,确实是会带来比不用更多问题,给初学者带来更大的learning
curve。但是这就像学习自然语言里的近义词一样,小学生初学时会在句子里不很适当
地使用,但不能因为小学生学习时可能会误用,就剔除语言里所有的近义词。。。

和C
★ 发自iPhone App: ChineseWeb 8.2.2
C***y
发帖数: 2546
21
来自主题: Programming版 - 请推荐linux下c++的IDE
Eclipse CDT很好使,简单的refactoring都可以做
喜欢VIM的话,推荐VIM + YCM,如果还想强大点,可以再加上Eclim(感觉Eclim用在C
++上主要是找函数的definition)

codeblocks
codeblocks
d*******r
发帖数: 3299
22
来自主题: Programming版 - 王垠终于开始搞垠语言了
是很难,但是我觉得大大地 refactor 一次肯定比现在清爽多了
学了N多年CS的各种东西后,发现就是在读一个巨大的 legacy code base ...
就说 SQL,从一开始学就很讨厌,所以很希望它早点衰败消失,当然也可能它活得很长
...
g*****g
发帖数: 34805
23
来自主题: Programming版 - emacs, vim无用论
编辑器这东西,随大流是错不了的。emacs, vi一个name refactoring都做不了。
p**********g
发帖数: 187
24
来自主题: Programming版 - emacs, vim无用论
确实。不过用vi也可以在需要的时候用eclipse做refactoring啊。
vi的*和.这两个功能实在太方便了。
l******t
发帖数: 55733
25
来自主题: Programming版 - 用vim/emacs相当于开手动车
服了。refactor 是摆着看的
l******t
发帖数: 55733
26
来自主题: Programming版 - 用vim/emacs相当于开手动车
C十十为什么这么高大上不要refactor

IDE
w***g
发帖数: 5958
27
来自主题: Programming版 - 用vim/emacs相当于开手动车
是的。这个做之前得先用grep看看会不会出问题。vi没有refactor的功能,只能手写
regular expression。vi就是一个编辑器,虽然也有一些整合gdb之类的插件,但是我
觉得任何想用vi做超出编辑器功能范围的行为都是作死。emacs貌似什么事情都能做,
这个我不懂,不敢妄加评论。
我前两天发现qt-creator其实挺不错,也支持vi的大部分命令。但是是在不习惯写程序
时用鼠标,一时还没转过去。另一个原因是对我说来IDE added value确实不多。我就
是vi-make-运行-git这个循环,偶尔用用gdb和valgrind,有时需要反复做一个复杂操
作,也都用bash自动化了。不同的人干的活不一样,趁手的家伙也不一样,没必要强求
统一。qt-creator还是要推荐一下,前两天我吃饱了撑着从源代码编译了一个版本,发
现解决了几个用apt-get安装的版本里面的一些问题。前景还是挺看好的。
q****x
发帖数: 7404
28
IDE就是为大项目准备的。代码越多,vi越不够用。做个refactor累死你。
b*******s
发帖数: 5216
29
只是好奇,无意冒犯。
你们那里都是用ide写c++的?
另外refactor和ide有什么关系?也好奇
b*******s
发帖数: 5216
30
请教下,refactor主要是怎么做的?
q****x
发帖数: 7404
31
选变量,右击鼠标,选refactor->change name。然后输入新名字,回车。这个变量的
所有引用都改好了,包括不同文件。
S*A
发帖数: 7142
32
那你如何用深入 IDE 功能 refactor 啊。
eclipse 这些基本上就和 emacs 非常接近了。
如果你用 VS, Xcode 这类 IDE,你的选择就少很多了。
t***t
发帖数: 6066
33
来自主题: Programming版 - 这几天试了一下linux c++ IDE
这种提供refactor功能么?auto-complete?还有eclipse里面有实时语法检查,这个有
没有?我觉得这几个是最有用的。
s****a
发帖数: 238
34
来自主题: Programming版 - 这几天试了一下linux c++ IDE
没怎么用过,看着不错,很适合写Qt的程序,包括PyQt,但是如楼上所说,linux太多
这样的半吊子ide,和VS比用起来肯定各种不爽。感觉开源社区作这种强调用户体验的
软件不行,看看open office那个吊样就知道,以前很期待borland要在linux上出的那
个ide,最后整个公司都挂了。
另一方面,大部分的编程一个编辑器完全可以搞定,ide最有用的地方是写gui时要拖拉
些控件然后生成些代码的架子,这也是ide最初被设计出来的目的,其他功能应该有专
门的工具搞定,特别是refactor等clang的功能越来越多被开放出来应该很快有对应的
工具。
Y**G
发帖数: 1089
35
俺一个refactor动作,估计VI帮得忙上一上午,俺可以喝咖啡了。
g*****g
发帖数: 34805
36
refactoring. debugging. 多了去了。我是不能想像没有IDE怎么在几千个文件里来回
跳转。
p*u
发帖数: 2454
37
来自主题: Programming版 - 老中真愚昧,看这里就知道

a large code base needs to be worked on for a long time, possibly refactored
/ rewritten server times, to become good. Only some big firms have such
luxury, like Internet and Telecom companies.
A*****i
发帖数: 3587
38
来自主题: Programming版 - 老中真愚昧,看这里就知道
别逗了,华为7、8年前就把思科代码移除了,你说的那些这里谁不知道?
军方背景都是全国人民皆知好吧,你说的这些连街头巷尾的老大爷都知道你还真以为就
你知道?
我说的code烂是我同学毕业去那亲口告诉我的,那代码简直惨不忍睹,根本就没有质量。
好多人加班就是在给别人擦屁股,因为大家一起烂一起难懂所以效率低下只好用加班来
补偿这些内耗丢掉的工作量,当然由于产品线巨大很多烂代码根本没法refactor所以只
好一批一批的人修修补补。
当然现在好多了,openstack为基础的云产品线开始有些IT公司的样子了。
拜托,你要真不知道就少说两句,就像你那北京四合院的故事我就挺乐意听的,剩下不
知道的还是少说为妙,免得丢人
y**********u
发帖数: 6366
39
来自主题: Programming版 - 弱问下,UBER后台用的是啥?
不了解uber,我猜测对普通的high throughput,不同的数据库系统和编程语言,本质
上没什么区别,只是看怎么用
当然像twitter后期用java替换掉ruby之后的确提高了很多是另外一个topic,可能他们
重写的时候有大量的refactor代码

随机
l******t
发帖数: 55733
40
在jar里的定义怎找?vi连个rename都没法做更别说其他refactor了
f*z
发帖数: 421
41
在window 下有些付费的IDE plugin还是比较好用的。除了编辑以外,代码分析,加
unit testing, refactoring 这些功能挺方便的。
r***y
发帖数: 4379
42
大牛好冲...
俺说的基本就是你说的那个另一回事.
话说用 vim 你那几百万行的代码做 refactor 还是闲庭信步吗? 你说你用一堆组合的
冷兵器也可以做到一样效率... 那我也没法...
如果你的项目再用了大量的第三方轮子, ide 精准的语法提示也极大的缩短熟悉新libs
的时间, 随调随看地显示doc等等的功能数不胜数... 当然 vim 你也有类似的, 但质
量就... 所以我说大家 tolerance 不一样...
另外, 用过好久 eclipse, nb, 和更久 IntelliJ(从v3开始) 的想说 Java 因为语言特
性, 好用的 ide 的确太多了.
但我不能否认 vi/vim 点射的精确, 它是我最喜爱的 editor, 但就是当 editor用, 上
学那会儿闲的蛋疼折腾配置 vim 当ide 用, 现在想想太自虐了, 有现成的 ide 快速完
成工作就行了, 毕竟写码的目的就是家庭生活...
以前在 ide 中都用过 vim plugin , 但最近也不爱用了, 有种戴套子嘿咻的感觉...
q*x
发帖数: 683
43
来自主题: Programming版 - 大家工作中写多少程序
活得难易不是行数能体现的。refactor 几千行也没啥,debug有时就一行,还只有牛人
能搞定。
c********1
发帖数: 421
44
来自主题: Programming版 - github上面的代码和公司的代码
Github的好处是build up自己的简历,到时候跳槽的时候可以要更高的价格
当然了,如果你能在打算跳槽前一夜之间换回来,
并且所有的reference也一并refactor了 :-P
那么根本没有问题
d****n
发帖数: 12461
45
很难refactor。
G***l
发帖数: 355
46
各个语言不同吧。而且跟背景也有关系,完全没接触过的和接触过一些当然不一样。我
真正认真去学fp之前已经简单学过lisp,虽然lisp谈不上是fp language。C#里面
functional的功能也用过很多。
学真是很次要的,这年头谁没学过好几种语言,语法还不是很快就搞定了。主要是要用
,忘记OO的那些东西。
function当作变量,currying,function的组合等等,其实一点也不难不是嘛。很多fp
语言你都可以定义oo那样的class,但是大多时候完全不需要,tuple,union和record的
组合基本够用了,还能pattern matching。no side effect function和immutable稍微
难适应点,不要point.moveUp();point.xxx();这样的用法,而是movedPoint=moveUp(
point);xxx(movedPoint);或者直接把point丢给move up和xxx的组合。再说FP不能或者
不鼓励用循环。其实就算c++,java这样的,best practice也是建议循环体不要太复杂
,不鼓励有多重... 阅读全帖
G***l
发帖数: 355
47
来自主题: Programming版 - 鼠标快还是键盘快?
各大ide基本都有vim的插件,用的人挺多。ide的快捷键,refactoring和vim,emacs的
键盘操作不是一回事,两者可以共存。纯编辑,当然是vim那种键盘操作快。
x***4
发帖数: 1815
48
深表同情。
我每次用ide refactor java的时候都庆幸到时选了个static type的语言。
l**********n
发帖数: 8443
49
来自主题: Programming版 - app单干没啥前途吧?
后端refactor容易,工具也多。
N*****m
发帖数: 42603
50
老赵,你给refactor一下?
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)