文章标题

                           ## 画皮画骨难画魂 ##

我以前听人说“代码是有灵魂的”,当时的我虽然觉得这句话很有道理,但我更多将它当做一种境界。像我最喜欢的星空,很美丽但也很遥远。因为更多的时候我关心的是代码实现的功能而不是它那“虚无缥缈的灵魂”。我曾经以为代码有灵魂那就有灵魂吧,毕竟那不关我事。我信”代码有灵魂“就像我相信量子物理学那里面的诸多公式是正确的一样,虽然我几乎看不懂几个,但我相信那些大神是对的,不过物质到底能不能超过光速和超过光速的物质到底在哪?这与我无关,反正我看不到找不到而且做不到超光速

module receive(
input clk_50M ,
input rst_n ,
input TTL_in ,
output TTL_out
);

assign TTL_out = TTL_out_data ;
reg start ;
reg [15:0] counter ;
reg [15:0] counter_2 ;
reg TTL_out_data ;

always @(*)
begin
if(TTL_in == 1’b0)
begin
if(counter < 54600)
start <= 1’b1 ;
end
else
start <= 1’b0 ;
end

always @(*)
begin
if( counter_2 > 7800 )
TTL_out_data <= TTL_in ;
else if (counter_2 > 1300)
TTL_out_data <= TTL_in ;
else if (counter_2 > 1300)
TTL_out_data <= TTL_in ;
else if (counter_2 > 18200)
TTL_out_data <= TTL_in ;
else if (counter_2 > 23400)
TTL_out_data <= TTL_in ;
else if (counter_2 > 28600)
TTL_out_data <= TTL_in ;
else if (counter_2 > 33800)
TTL_out_data <= TTL_in ;
else if (counter_2 > 39000)
TTL_out_data <= TTL_in ;
else if (counter_2 > 44200)
TTL_out_data <= TTL_in ;
else if (counter_2 > 49400)
TTL_out_data <= TTL_in ;
end

always @(posedge clk_50M )
begin
if(start == 1’b1)
begin
if(counter_2 > 16’d49400)
counter_2 = 16’d0 ;
else
counter_2 <= counter_2 + 1’b1 ;
end
else
counter_2 <= 16’d0 ;
end

always @ (posedge clk_50M or negedge rst_n )
begin
if( rst_n == 1’b0)
counter <= 16’b0;
else
counter <= (counter > 54600) ? 16’d0 : counter + 1’b1 ;
end

endmodule
这是一段关于FPGA串口接受数据的代码,波特率为9600,FPGA时钟为50M。
写这段代码前我没有清晰的规划,没有想好如何去实现这个功能,甚至我要实现这个功能要先干什么都不知道! 这是我常有的状态,写代码前大脑一片空白,脑中只剩下一个想法,我最终要实现这个功能。
然后开始”神不知鬼不觉“的敲键盘,没错,就是”神不知鬼不觉“,像在做梦,写完后对敲完的代码没有一点印象,好像它不是我写的。 这让我想起里看过的那部电影《你的名字》里的男女主角。或许这也是一段爱情···········好吧,单身狗想的有点飞出天际了,强行回到正题。
这段代码,老师给出了最精髓的评价”有骨有肉没有魂“,刚开始还不太理解,但当仔细的回想和认真的读了几遍自己的代码以后。
”它真的没有灵魂“我得出了这个令我兴奋和忧伤的结论,兴奋是因为我似乎抓住了代码灵魂的尾巴,能对它有所感触,忧伤的是它真的是一堆没有灵魂的代码。它空洞而生硬,像卓别林大师演的那场讽刺工业机械式的生产那家工厂里的机器,每一次的转动带来的都是麻木和疲惫。它像那些流水线,将作品分解成一个个简单重复的动作,批量生产,却再也做不出大师那样的精品,每一根曲线和每一个角度都是那么的灵动,这是流水线生产出来的物品所不具有的,大师手下的作品是有灵魂的。
写代码也是同样的,对于实现一个功能,如果你使用流水线式的方式东拼一块西凑一块,最终可能也能实现相应的功能,但是如果你仔细阅读你的代码,你会发现它没有生气,而且相当危险。像锈迹斑斑的老式机械,苟延残喘的勉强工作。
优秀的代码如艺术品,整洁、清晰、优雅,如绅士,干净整洁又内涵丰富。
优秀的的代码 “始于颜值,陷于才华,终于人品”,你会被它的整体布局所吸引,比如整齐的标点符号排列,整洁清晰的注释····,你有了读它的兴趣,阅读这样的代码是一种享受,当你去思考它的内容时,你又会为它内清晰精妙的逻辑设计而赞叹和惊艳,最后当你读完它后,细细回味,发现它的整体结构布局是如此的合理和精巧,那些理所当然的地方原来蕴藏着那么多的思考和智慧。
最后送给大家和我一句评判代码质量的方法 : 别人看你代码时所说骂的脏话的多少,就是代码好坏的程度。 其实也不用别人,我们自己隔几天再去看我们的代码,骂的脏话都可以作为参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值