s****e 发帖数: 1180 | 1 sas里面多次call一段程序用macro,那r里多次call一段程序生成多个文件该怎么办?
Thank you for your attention! |
|
m********o 发帖数: 796 | 2 【 以下文字转载自 Linux 讨论区 】
发信人: momoxinduo (馍馍), 信区: Linux
标 题: 弱弱的问个内核遍历当前进程的子进程的一小段程序
发信站: BBS 未名空间站 (Wed Aug 21 01:23:39 2013, 美东)
linux内核里遍历当前进程的子进程的一小段程序有点看不太明白
struct task_struct *task;
struct list_head *list;
/* 这里的 struct list_head 的定义是两个指向他自己的指针
* struct list_head
* {
* struct list_head *next, *prev;
* }; */
/* 下面的list_for_each宏定义
*list_for_each - iterate over a list
* @pos: the &struct list_head to use as a loop cursor.
* @head: the head for your list. */
... 阅读全帖 |
|
p*****e 发帖数: 53 | 3 是一个公司出的题,我是咋都看不出有啥错误,具体在什么地方会crash呢?
面试的人的说法这几段程序至少有四段是有问题的,我自己很困惑,我感觉都是对的
下来后我也都run过了,没发现啥错误,搞得对编程都没啥信心了
羊? |
|
c***g 发帖数: 472 | 4 给一定一个binary tree, 给定一个值,然后求出从root开始的和为target value的
path
我这段程序为什么不对呢?
void
Tree::findPath(Node* head, int sum, int path[], int level){
if(head == NULL) return;
if(sum == 0) {
for(int i = 0 ; i < level; i++)
std::cout<
} else {
path[level] = head->value;
findPath(head->left, sum - head->value, path, level+1);
findPath(head->right, sum - head->value, path, level+1);
}
} |
|
h***o 发帖数: 30 | 5 先检查sum是否为0就对了
给一定一个binary tree, 给定一个值,然后求出从root开始的和为target value的
path我这段程序为什么不对呢?voidTree::findPath(No........
★ Sent from iPhone App: iReader Mitbbs Lite 7.39 |
|
|
t****t 发帖数: 387 | 7 这段程序我可以运行没问题
如果再pop一次就crash
template struct node{
node *next;
T data;
node(node* n, T d):next(n),data(d){};
};
template class stack{
public:
node *head;
int ind;
stack(){}
~stack(){}
void push(T d);
T pop();
bool isEmpty();
};
template T stack::pop(){
T d=head->data;
node *s=head;
head=head->next;
delete s;
ind--;
return d;
}
template void stack::push(T d){
if(i... 阅读全帖 |
|
m********o 发帖数: 796 | 8 linux内核里遍历当前进程的子进程的一小段程序有点看不太明白
struct task_struct *task;
struct list_head *list;
/* 这里的 struct list_head 的定义是两个指向他自己的指针
* struct list_head
* {
* struct list_head *next, *prev;
* }; */
/* 下面的list_for_each宏定义
*list_for_each - iterate over a list
* @pos: the &struct list_head to use as a loop cursor.
* @head: the head for your list. */
#define list_for_each(pos, head)
for (pos = (head)->next; prefetch(pos->next), pos != (head); pos =
pos->next) ... 阅读全帖 |
|
|
y****n 发帖数: 15 | 10 在32核的服务器上,运行一小段图像卷积的操作。输入是图像矩阵(按列),和一个y
方向上的卷积kernel。举例来说,如果kernel是[-0.5 0 0 0 1 0 0 0 0.5],那么下面
程序中的变量分别为
kernel: [-0.5 1 0.5]
szKernel: 3
step: 4
这段程序中使用了OpenMP对for循环执行并行操作。当使用>4个核时,程序运行速度反
而下降。这段程序要运行很多次,是整个程序的性能瓶颈,请大牛们指点一下该如何改
进。
double s = kernel[(szKernel-1)/2];
//#pragma omp parallel for
for (int k = 0; k < m*n; k++)
v_out[k] = v_in[k] * s;
for (int k = 0; k < (szKernel-1)/2; k++)
{
double s = kernel[k];
int offset = ((szKernel-1)/2 - k)*step;
... 阅读全帖 |
|
y****n 发帖数: 15 | 11 在32核的服务器上,运行一小段图像卷积的操作。输入是图像矩阵(按列),和一个y
方向上的卷积kernel。举例来说,如果kernel是[-0.5 0 0 0 1 0 0 0 0.5],那么下面
程序中的变量分别为
kernel: [-0.5 1 0.5]
szKernel: 3
step: 4
这段程序中使用了OpenMP对for循环执行并行操作。当使用>4个核时,程序运行速度反
而下降。这段程序要运行很多次,是整个程序的性能瓶颈,请大牛们指点一下该如何改
进。
double s = kernel[(szKernel-1)/2];
//#pragma omp parallel for
for (int k = 0; k < m*n; k++)
v_out[k] = v_in[k] * s;
for (int k = 0; k < (szKernel-1)/2; k++)
{
double s = kernel[k];
int offset = ((szKernel-1)/2 - k)*step;
... 阅读全帖 |
|
t******n 发帖数: 2939 | 12 ☆─────────────────────────────────────☆
l63 (l63) 于 (Sun May 26 03:44:32 2013, 美东) 提到:
我对素数的定义是:
"a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除"
C代码如下:
bool judge_prime(int a)
{
int b;
if (a<=1)
return 0;
else
{
for (b=0;b
{
if(judge_prime(b)&& a%b==0)
return 0;
}
return 1;
}
}
☆─────────────────────────────────────☆
l63 (l63) 于 (Sun May 26 03:46:21 2013, 美东) 提到:
看了这个还认为我的定义有什么 "循环定义" 的问题的人, 我只能说, 你的智商连... 阅读全帖 |
|
w***s 发帖数: 7132 | 13 调程序的小女孩(感谢安徒生)ZT
2010-05-10 21:44:57 来自: Sophie Z(无法坦诚相对)
实验室里冷极了,没有窗户,不知道是白天还是黑夜。这是一周的最后一天——周末。
在这又冷又黑的晚上,一个蓬头散发的小女孩在工位上坐着。她从家里出来的时候还穿
着一件外套,但是有什么用呢?那是一件很大的外套──那么大,不知是哪一年买的。
她工作的时候的,就把它脱掉了,实验室的师弟嘲笑说,可以拿它当抹布。
小女孩只好一个人做实验,一双小脚冻得红一块青一块的。她的破显示器屏幕上有一大
段程序,手里草稿纸上还有一大段。这一整天,程序还是没调过,谁也没帮过她。
可怜的小女孩!她又冷又饿,哆哆嗦嗦地调程序。显示器的光落在她的干枯的长头发上
,那头发卷曲着披在肩上,看上去很久没梳,不过她没注意这些。每个桌上都堆满了论
文,实验室飘着一股油墨的香味,因为这是论文deadline的时间——她可忘不了这个。
她在一行代码上停了下来,蜷着趴在桌子上。她觉得更冷了。她不敢跟老板说,因为她
程序没调过,没拿到一个数据,老板一定会骂她的。再说,换做别的题目跟这个一样难
。她们头上只有paper,虽然网 |
|
c****b 发帖数: 265 | 14 实验室里冷极了,没有窗户,不知道是白天还是黑夜。这是一周的最后一天——周末。
在这又冷又黑的晚上,一个蓬头散发的小女孩在工位上坐着。她从家里出来的时候还穿
着一件外套,但是有什么用呢?那是一件很大的外套──那么大,不知是哪一年买的。
她工作的时候的,就把它脱掉了,实验室的师弟嘲笑说,可以拿它当抹布。
小女孩只好一个人做实验,一双小脚冻得红一块青一块的。她的破显示器屏幕上有一大
段程序,手里草稿纸上还有一大段。这一整天,程序还是没调过,谁也没帮过她。
可怜的小女孩!她又冷又饿,哆哆嗦嗦地调程序。显示器的光落在她的干枯的长头发上
,那头发卷曲着披在肩上,看上去很久没梳,不过她没注意这些。每个桌上都堆满了论
文,实验室飘着一股油墨的香味,因为这是论文deadline的时间——她可忘不了这个。
她在一行代码上停了下来,蜷着趴在桌子上。她觉得更冷了。她不敢跟老板说,因为她
程序没调过,没拿到一个数据,老板一定会骂她的。再说,换做别的题目跟这个一样难
。她们头上只有paper,虽然网上可以下到一些现成的代码,还是仍然没法用。
她的头脑几乎绝望了。啊,哪怕一次小小的成功,对她也是有好处的!她敢把上万 |
|
w***g 发帖数: 5958 | 15 这段程序看过好多次,每次都看不下来。
今天又内伤了。已经两三个星期了。总共就100多行程序,就是看不懂。
就是看不懂...
当时是我决定用spark的。但手下程序员太强大了。现在他走了,
这段时间想更新下系统改进下算法,结果天天在看这100多行代码。
我心里现在无数只草泥马在扇自己巴掌。这辈子就没见过这么难懂的代码。 |
|
s******a 发帖数: 184 | 16 proc format;
value qtrfmt ’01jan2002’ d - ’31mar2002’ d = ’1’
’01apr2002’ d - ’30jun2002’ d = ’2’
’01jul2002’ d - ’30sep2002’ d = ’3’
’01oct2002’ d - ’31dec2002’ d = ’4’;
run;
data company.quarters(keep=count order_date
rename=(order_date=Quarter));
set retail.orders;
format order_date qtrfmt.;
by order_date groupformat notsorted;
where year(order_date)=2002;
if first.order_date then Count=0;
Count +1;
if last.order_date;
run;
我对这段程序有两个问题:
1) 我知道这三行
if first.order_date... 阅读全帖 |
|
x**********i 发帖数: 658 | 17 小弟是苦逼汽车工程师,只会用matlab,最近想转马工,长期的职业目标是做无人驾驶
技术的开发。请各位大牛帮忙评估下水平,好定位自己。
我自己用matlab写了一段程序,4000行左右,功能是把轮胎的测量数据(大牛们可以理
解为几万个数字),按照要求以曲线的形式表现出来,这样汽车工程师一看就知道这个
轮胎的性能怎么样。这个程序大概有导入,计算,输出,展示功能。
我没有cs基础,就是慢慢摸索,编程过程很难,然后程序也没啥技巧,就是为了实现最
后的功能。
谢谢大牛。 |
|
s***n 发帖数: 373 | 18 程序结构大概是
读取trace,经过分析之后,存入postgresql 数据库。trace文件是2GB
现在的linux机器是8GB, 两个硬盘, trace 在一个硬盘上, db在另外一个。
程序运行起来分析了1GB之后就变的很慢,CPU占用率才不到3%, memeory也够用,还有4
个GB free呢。
这段程序以前在一个mac server上运行没有任何问题,分析2GB的trace也就1分钟而已。
可能的瓶颈会在哪里? |
|
y********9 发帖数: 130 | 19
额。。我的意思是 如何返回到第一次指针所指的数值(2.0) 不是减法。。
还是这段程序根本就是错的 不能用一个变量反复赋值呢? |
|
s******g 发帖数: 30 | 20 下面是一段写于1970年的fortran程序.
C
C RANF(0) RETURNS A RANDOM NUMBER UNIFORMLY DISTRIBUTED BETWEEN
C ZERO AND ONE AT EACH CALL
C R(I) HAS A GAUSSIAN DISTRIBUTION
C
DO 40 I=1,N
39 XY=-ALOG(RANF(0))
YY=-ALOG(RANF(0))
IF(YY.LT.0.5*(XY-1.0)**2)GO TO 39
40 R(I)=SIGN(XY,RANF(0)-.5)
没搞明摆这样获得的R(I)随机数具有高司分布.
主要是IF后的条件.
哪位指点一下.呵呵.. |
|
g******i 发帖数: 32 | 21 想将程序的运行输出制成video clip,比如mpeg等可以在计算机上播放的格式,这样演示
的时候只要播放这段录像就可以了。应该如何做呢?谢谢! |
|
y****n 发帖数: 15 | 22 下面这段程序使用openmp执行一个类似图像线性插值的算法。
输入为Z(图像),X(坐标),Y(坐标),输出为F(图像)
为了避免同时写入数组F的某个元素,使用了#pragma omp atomic
我遇到的问题是,当把线程数设为1和2时,运行程序会得到不同的结果。实在想不出问
题出在什么地方。肯请大牛们帮忙看一看。
#pragma omp parallel for
for (int n = 0; n < MN; n++)
{
double y = Y[n];
double x = X[n];
int fx = (int)floor(x);
int fy = (int)floor(y);
if (fx<1 || x>nw || fy<1 || y>nh) // image index is [1...nw]
{
for (int i = 0; i < ndim; i++)
{
#pragma omp atomic
F[n+i*MN] += Z... 阅读全帖 |
|
i*****o 发帖数: 1714 | 23 这段程序很正常的,结果也是预料之中,你到底哪行有疑问?
★ 发自iPhone App: ChineseWeb 1.0.2 |
|
f******e 发帖数: 10 | 24 嘿嘿,写一段程序.先用C优化到不能优化.
用VC优化便宜成ReleaseVersion.
同样用汇编写一段.不定谁更快.(不许用mmx,pIII指令那样,人家就要call
intel的lib了) |
|
R********n 发帖数: 19 | 25 head=head->next;
程序里面两次push,第二次pop的时候,上面一句已经把head赋值NULL了(程序里开始
没把head赋值NULL,所以严格来说是uninitialized),第三次pop,T d=head->data
就出问题了。 |
|
a*****e 发帖数: 1700 | 26 我又想了一下,你原程序是从左往右算 sum 的话,那么实际上任意时刻的 dependecy
是左上到目前所访问的位置的斜线,之前访问过的已经被 GC 掉了。所以也不应该
有内存问题。
我试验了一下,你的原程序算 5000 和 10000 的内存 profile 显示内存用量分别是 0
.6-1M 和 1.2-2M,属于 linear 增长。所以实际上并没有内存问题,就是算得慢而已
,你需要用 ghc -O2 来编译运行。 |
|
h*****n 发帖数: 209 | 27 一直有个问题没搞懂,
如果一段程序在hard disk或SSD上,计算机是不能直接运行它的,需要先copy到RAM里
面然后在RAM里面运行。
那么当计算机刚开机的时候,BIOS和Boot Loader里面的程序也需要copy到RAM吗?还是
直接就在ROM里面运行了? |
|
w***u 发帖数: 17713 | 28 五子棋有解的问题,职业别说9段,10段也打不过一小段程序。 |
|
c***n 发帖数: 809 | 29 c++是先赋值在++, 所以carr 和arr是一样的,
这段程序那里来的,真是有待提高啊。 |
|
w*h 发帖数: 286 | 30 use CGI qw(:standard);
$CGI::POST_MAX=1024 * 150;
$CGI::DISABLE_UPLOADS = 0;
$CGI::HEADERS_ONCE = 1;
eval {
($0 =~ m,(.*)/[^/]+,) and unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) and unshift (@INC, "$1");
require "ikon.lib";
require "data/progs.cgi";
require "data/boardinfo.cgi";
require "data/styles.cgi";
require "ikonmail.lib";
};
if ($@) {
print header(-charset=>"gb2312"); print start_html(-title=>"LB5000 出错!");
print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径 |
|
G****A 发帖数: 4160 | 31 下面这段程序编译没有错误,执行后windows却弹出错误提示框,请帮我看看怎么回事.谢谢
template
void display(const string &msg, const vector &vec)
{
elemType t = vec[0];
cout<
cout<
}
int main()
{
string a = "Hello";
vector ivec;
ivec[0] = 7;
display(a, ivec);
return 0;
} |
|
k**l 发帖数: 2966 | 32 I know there is a sleep(10), 不过这个是等待10秒,如果我的程序本身要比如2~3s
才能完成就得等7~8s,应该有个类似sleep的library 能设定每10s开始运行一次吧,
boost里面有么?谢谢 |
|
m********r 发帖数: 334 | 33 这段程序读boa的配置文件boa.conf,找到端口号后改写新端口,例如
Port 80
# Listen: the Internet address to bind(2) to. If you leave it out,
# it takes the behavior before 0.93.17.2, which is to bind to all
# addresses (INADDR_ANY). You only get one "Listen" directive,
变成Port 8080
# Listen: the Internet address to bind(2) to. If you leave it out,
# it takes the behavior before 0.93.17.2, which is to bind to all
# addresses (INADDR_ANY). You only get one "Listen" directive,
现在发现每次第一次修改的时候这一行没问题,但是下面的注释的#号没有了,变成
n: the I... 阅读全帖 |
|
p*****e 发帖数: 53 | 34 非常感谢joa和hatemaths帮我解惑!
看来我看程序潜意识里已经加入了许多假设,可是自己都没有意识到
第一个我想密码有1024字符怎么也够了吧;
第二个想反正malloc失败了会返回NULL指针给ptr,所以最后返回ptr就可以了。看来这
个也要单独处理一下;
第三个还真没想到溢出这个问题;
第四个new抛出异常,一直以为new失败返回0,没想到这个可能,对了,如果出现这种
情况,怎么处理啊?
第五个p==0也没想到,潜意识里认为要找needle应该不是个空串
困惑总算解开了,看来编程的确要detail oriented,经过二位指点才发现我自己原来
太多想当然了。再次感谢楼上几位的帮助!!! |
|
y***d 发帖数: 2330 | 35 第一个是输入一堆字符串,程序来 count 它们,直到 'end' 结束
第二个循环是 query 这个 count,直到 'end' 结束;
不过 query 部分不够好,因为 wordcounts[xxx] 会自动在 map 里面加上不必要的条
目。 |
|
a*****e 发帖数: 1700 | 36 你这个算法写得不是特别好,造成最后要 take N, 然后还要预估一个 N
为什么不从 most significant digit 开始排呢?这样也用不着 [0,0..]
我给你改了一下
initial = [1]
tworaise :: [[Int]]
tworaise = initial : map double tworaise
double :: [Int] -> [Int]
double = dropWhile (==0) . foldr f [0]
where
f !d ((!x):xs) =
let (q, r) = (d * 2) `quotRem` 10
in q:r+x:xs
main = print $ sum $ tworaise !! 10000
运行起来是这样的:
bash-4.2$ ghc -XBangPatterns -O2 test.hs
[1 of 1] Compiling Main ( test.hs, test.o )
Linking test ...
bash-4.2$ time .... 阅读全帖 |
|
t*s 发帖数: 1504 | 37 对,就是
俺写的第一个Haskell程序
用imperative的话,用我的傻算法,从头到尾就是10000个int
但fp, 因为不让改值,10000次循环就成了1000000000个int
Haskell也不智能,不知道garbage collection |
|
a*****e 发帖数: 1700 | 38 你仔细看我写的那个 double,和你这个 inner loop 没有大区别
你这个是从左往右,我写的是从右往左 (foldr)
你要是用 Haskell 里面的 Vector,或者是 Mutable Vector,都能写出和你那个
Python 基本一样的程序。
不过你既然选择了用 List,难免会遇到 strictness 的问题。 |
|
t*s 发帖数: 1504 | 39 果然是大神
O2加了就可以了,不加就out of memory (用的最新版windows ghc)
你算的是三角形,我算的是正方形
两者内存速度差距应该就是最多一倍。
网上查了一下,似乎O2有些时候会让Haskell程序产生数量级的变化,比如从O(n)到O(1
)啥的。
dependecy
0 |
|
r***e 发帖数: 2000 | 40 麻烦帮忙看一下这段程序用clock()的timer有什么问题。
#include
#include
#include
#include
int main()
{
clock_t start, end;
double elapse, _elapse;
struct timeval _start, _end;
gettimeofday(&_start, 0);
start = clock();
sleep(1);
end = clock();
gettimeofday(&_end, 0);
elapse = (end - start) / (double) CLOCKS_PER_SEC;
_elapse = ((_end.tv_sec - _start.tv_sec)*1000000.0
+ (_end.tv_usec-_start.tv_usec)) / 1000000.0;
printf("start: %ld, end: %ld, clocks... 阅读全帖 |
|
B*********h 发帖数: 800 | 41 ☆─────────────────────────────────────☆
jjwwjj (jjwwjj) 于 (Thu Mar 1 02:02:13 2007) 提到:
比如下面这段程序,用到了循环,判断,跳出循环,累加计数等,应该怎样才能转换成
Excel呢?需要VBA吗?
另外,normcdf (累积概率分布函数)在Excel里面有对应的函数吗?
for ii=1:N;
Z=randn(1, 1);
U=randn(5, 1);
X=sqrt(c)*Z+sqrt(1-c)*U;
W=normcdf(X);
for j=1:5;
DefaultTime(j, :)=((DefaultProbs(j, 2:end)>=W(j)) .* (DefaultProbs(j
, 1:end-1)
end;
PV=0;
CumLoss=0;
for t=1:5;
CumLoss=CumLoss+sum(Defa |
|
l****g 发帖数: 304 | 42 请教,这段程序有错误吗?运行后没有任何结果?谢谢。
data one;
input status $ ;
cards;
serious
not
serious
not
serious
;
run;
%macro highway;
proc sql noprint;
%let numgrp=6;
select distinct status into : group1 - :group&numgrp from one;
quit;
%do i = 1 %to &numgrp ;
proc print data = one ;
where status = " &&group&i" ;
run;
%end;
%put &group1;
%mend;
%highway |
|
t********m 发帖数: 939 | 43 if var1 in ('x','y','z') or var2 in ('x','y','z') or var3 in ('x','y','z
') or var4 in ('x','y','z') then target=1; else target=0;
就是只要var1-var4里面任何一个变量含有x或y或z,目标变量就等于1,否则为0。
上述程序很繁琐,能不能用array来优化一下啊?多谢指教! |
|
l*3 发帖数: 2279 | 44 你是指c语言里没有 bool吗还是?
如果是这一点的话, 那我承认我傻逼了.... 其实我从来没编译过这段程序.... |
|
k**l 发帖数: 2966 | 45 懂boost的人能帮忙看看这段程行么:只要myEngineOn==true; myEngine_run() 每10秒
钟被call一次:
while(myEngineOn){
boost::xtime xt;
boost::xtime_get(&xt, boost::TIME_UTC);
xt.sec+=10;
myEngine_run(); //这个function应该不会超过两秒
boost::thread::sleep(xt);
//这里的意思是睡到xt, 不是睡xt那么长时间---If I understand
} |
|
t******n 发帖数: 2939 | 46 ☆─────────────────────────────────────☆
l63 (l63) 于 (Thu May 23 00:34:22 2013, 美东) 提到:
假设素数只有有限个, 记为 p_1,p_2,...,p_k
考察 N = p_1*p_2*...*p_k + 1
可知: 对于任意i = 1,2,3,...,k, p_i 不能整除 N
由素数的定义:
a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除
可知: N是素数
这与素数只有p_1,p_2,...,p_k矛盾.
故假设不成立.
所以素数有无穷多个.
☆─────────────────────────────────────☆
l63 (l63) 于 (Thu May 23 00:37:03 2013, 美东) 提到:
在承认素数的这个等价定义 (即 a是素数 <=> a是大于1的自然数, 且a不被任何小于a
的素数整除) 的前提下, 居然有人会认为这个证明是错的, 或者是不完备的.
我实在不能理解.
求问一下大家, 是不是有的人的脑子天生有缺陷, 根本怎么教都不会明白... 阅读全帖 |
|
T***N 发帖数: 1835 | 47 第一次在movie版发帖。。。
趁着科幻热,又看了一遍黑客帝国123。
第一遍是高中看,感觉就是爽,
第二遍大学时看的,感觉很疑惑。
第三遍刚来美国看的,感觉后背发麻。
第四遍刚看的,最后感到充满了希望。
转载一篇解析吧,解释的很好,观点也都基本同意。。。
《黑客帝国》完全解析
发布时间: 2012-01-14 22:46 阅读: 27771 次 推荐: 43 原文链接 [收藏]
万事皆有始亦有终——《The Matrix》影评之终结篇
一、前言
从 Matrix I 到 Matrix III,整整四年,一对名叫沃卓斯基(导演加编剧)的兄
弟给科幻电影带来一次史无前例的冲击,无论从思想上还是视觉效果上都超过了以往任
何一部科幻电影,从来没有一部科幻电影能够创造这么多的 Fans 也没有任何一部科幻
电影能像 Matrix 这样引发如此大规模的讨论——讨论剧情,讨论主题,讨论特效,讨
论演员,笔者绝不敢自称 100% 的看懂了(我把看懂定义为“理解沃卓斯基兄弟眼中剧
情和主题的原意”,以免就这个“看懂”一词遭来无数的非议),但是我愿意把我所理
解的 The Matrix 的... 阅读全帖 |
|
n**********2 发帖数: 648 | 48 【 以下文字转载自 Programming 讨论区 】
发信人: xykkkk (asdf), 信区: Programming
标 题: 老码农冒死揭开行业黑幕:如何编写无法维护的代码(zz)
发信站: BBS 未名空间站 (Fri Nov 28 13:28:27 2014, 美东)
如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid... 阅读全帖 |
|
x****k 发帖数: 2932 | 49 如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid latine dictum sit, altum sonatur.
(随便用拉丁文写点啥都会显得高大上。)
想挫败维护代码的程序员,你必须先明白他的思维方式。他接手了你的庞大程序,没有
时间把它全部读一遍,更别说理解它了。他无非是想快速找到修改代码的位置、改代码
、编译,然后就能交差,... 阅读全帖 |
|
g**1 发帖数: 10330 | 50 只因写了一段爬虫,公司200多人被抓!
“一个程序员写了个爬虫程序,整个公司200多人被端了。”
“不可能吧!”
刚从朋友听到这个消息的时候,我有点不太相信,做为一名程序员来讲,谁还没有写过
几段爬虫呢?只因写爬虫程序就被端有点夸张了吧。
朋友说,消息很确认并且已经进入等待审判阶段了。
01.对消息进一步确认
朋友认识几个律师朋友,和他们有一些业务来往,得知他们想尝试把业务扩展到程序员
这个群体。那段时间我刚好离职也有时间,在朋友的安排下一起聊聊看看有没有合作的
机会。
他们为什么想扩展人群到程序员这个行业呢?其实就是因为他们代理了这名程序员的官
司,才发现很多程序员完全不懂法,直接说是法盲一点都不过分。
刚好我也很好奇程序员因爬虫被抓这个案子,看看到底是怎么回事,就和两名律师以及
朋友坐到一起,深入交流后才知道整个事件的来龙去脉。
这名程序员在被警察逮捕后,警察审问期间一直不承认自己触犯了法律,并且也完全没
有意识到自己犯法了。进去之后总以为警察搞错了,过几天就会把自己放出来,结果也
错过了取保候审的机会。
律师说,这名程序员的妈妈当时在他毕业的时候,就因程序员这个行业太辛苦不同意他... 阅读全帖 |
|