写点什么

2012.3.30 微博热报:大方法、基础 vs 库

  • 2012-03-30
  • 本文字数:1505 字

    阅读完需:约 5 分钟

关于代码中对方法的定义,有很多规则,其中一条就是要限制一个方法中代码的行数。这条规则也会根据具体使用的语言和项目不同而有所区别。日前, XiaoshenW 的一条微博中提到了“毛少”在西安电子科技大学的讲座,其中说到:在 ThoughtWorks 代码超过 15 行就视为"大方法"。从而引起了大家对“大方法”的定义以及一个方法中应该有多少行代码展开了广泛讨论:

onedear :超过 15 行就属于大方法,那大方法要怎么对待呢?// @老赵: 我问了好多次了,谁能给我一个示例项目看看啊?

真谛 LOL :对对对,易维护是真,我司。。。那个破项目使用 django 已经被修改到惨不忍睹,后来。。我试着分了一下。。现在产品再来小变动,分分钟解决问题啊!

1000copy : 15 行也好,50 行也好,并非本质,本质是设置一个信号,在这个值超过的时候,提醒自己和团队是否有必要处理。一个较大团队,如果简单说要做到“可读”是不易于操作的,而有一个共同认可的行数信号比较实用。可以自动化,可以提醒;我发现超过这个行数的几乎都有调优的空间,并且不小。具体项目的缺乏是一个硬伤,现实工作中,没有人为了这个单一的理念全面贯彻下去而做一个项目,做项目除了代码的可维护性外,还需要考虑很要因素,其中有些比可读性还重要。做了也一样要被质疑。也有一些现实问题,就是公司项目全面成功且实际投入使用行数限定的,拿出来有政策风险。有些人确实是比较无聊。比如行数的概念还是语句的概念;比如行数没有指明列数;你明明知道人家不是这个意思,都是同行,至于搞这些飞机嘛。实话说有点幼稚和耍弄小聪明。

压力很大同志:我一般的底线是一屏,不是竖着那种 // @刘鑫 -MarchLiu : 很难想像一个实用的项目里没有超过 15 行的方法,我给自已的标准是读起来舒服就行,一个逻辑嵌套十几二十层方法,会比写五十行代码更蛋疼。 // @bnu_chenshuo : 标准随便你定,能不能举一两个符合你自己定的标准的项目给大家学习学习?

赖晨东:方法大小不应该以行数来定的。而是以“职责(功能)”来定的。保持【一个方法只干一件事】并保持【同一方法的代码在同一抽象级别上】,方法就长(行数多)不起来。现实中看到的那先几百上千行的方法绝大多都违反了上述两个原则。

高翌翔:不管别人信不信,反正俺是信了!行数多寡靠得是功力,不妨从 25 > 20 > 15 > 10 > 5 依次递减,就像从幼儿园到博士后一样;而细粒度方法是程序设计的追求之一,不仅代码重用性好、更易维护,最重要的是,这是对问题域加深认知的过程,正如科学家不断探究分子、原子、夸克等更小粒子的过程相仿!

关于高手和菜鸟之间的区别,有很多种说法,蛙蛙王子也在微博上说出了自己的想法:我觉得现在高手和菜鸟最大的区别是高手会用的库多,而不是高手底层好,基础硬,当你研究 epoll 时,高手都精通 libevent 了,当你费心思考虑组织 js 代码时,高手都熟练使用 backbone 和 seajs 了,花时间补基础,自己写基础组件,不如学现成库有成效。不过大家也都说出了自己的想法:

宝玉 xp :我一直觉得高手在于擅于用已知知识和学习新知识去快速实现或解决问题,而不在于他会多少知识点。

TKei_ :相当实际有效做法,但还是觉得想要理解得透彻,基础和底层是必须的,当然,如果是要做框架或者库的开发者,底层是相当重要了

蛙蛙王子:回复 @宝玉 xp : 太虚了这种说法,设么都不会也能做到这点,高手的积累还是很多的

aste22 :也不完全。装配脑袋 RednaxelaFX 即便见识不够广,但人家的基本功那可是非同寻常的,他们更是高手

李欢的大猪窝:实际上,公司里需要精通底层的人几个就够了,需要精通框架的人多

袁凯 1860yk :不敢苟同!创造者比使用者有价值

推荐微博: XiaoshenW

简介:能做到精致就不要停留在 good enough 上;精神洁癖;持续改进。

2012-03-30 01:272857
用户头像

发布了 340 篇内容, 共 146.8 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

关于MVC_MVP_MVVM的一些错误认识,android面试流程

android 程序员 移动开发

再见!杭州!再见,kotlin数组fold方法

android 程序员 移动开发

入职两年的安卓“程序员“跳槽,2021年阿里Android面试题精选

android 程序员 移动开发

全面复盘Android开发者容易忽视的Backup功能 _ 创作者训练营第二期

android 程序员 移动开发

这本“算法宝典”讲得透彻,完全掌握后,我竟拿到字节跳动offer

程序员 算法 字节

区块链上的房地产:区块链会颠覆房地产吗?

CECBC

关于拼多多被曝删除用户本机照片的一点想法(1),android程序设计基础

android 程序员 移动开发

关于拼多多被曝删除用户本机照片的一点想法,移动服务框架app下载安装

android 程序员 移动开发

六年Android从迷茫到大牛的成长之路,不忘初心,方得始终

android 程序员 移动开发

关于 Flutter 是不是“大有可为”这件事,androidjetpack教程

android 移动开发

毕业设计—电商秒杀系统

俊杰

架构实战营

做了六年Android,终于熬出头了,15K到31K全靠这份高级面试题

android 程序员 移动开发

兄弟们,这年头,咱移动客户端工程师还有前途吗,flutter图片压缩上传

android 程序员 移动开发

05 K8S之kubeadm介绍

穿过生命散发芬芳

k8s 11月日更

写给Android开发者的混淆使用手册,程序员工作2年月薪12K

android 程序员 移动开发

做了5年Android,靠着这份面试题跟答案,我从12K变成了30K

android 程序员 移动开发

关于Android的渲染机制,大厂面试官最喜欢问的7个问题【建议收藏

android 程序员 移动开发

写给即将正在找工作的Android攻城狮,移动客户端开发面经

android 程序员 移动开发

全面理解 Flutter(万字长文,深度解析,整理了3家面试问题:美团+字节+腾讯

android 程序员 移动开发

架构实战营-模块九-毕业设计

Cingk

元宇宙,如何看待它就是下一代互联网(附下载)

CECBC

写代码还是做管理?安卓开发者的困扰,一文全懂

android 程序员 移动开发

关于大厂Android面试必问的事件分发机制,应该没有比这篇讲的更好的了

android 程序员 移动开发

关于程序员35岁的坎:年龄不是挡板,当你匹配了这个年纪该有的能力还有什么畏惧

android 程序员 移动开发

架构实战营模块毕业总结

河马先生

架构实战营

关于使用 Android MVVM + LiveData 模式的一些建议,ffmpeg音视频同步

android 程序员 移动开发

内存泄漏以优化大全,2021非科班生的Android面试之路

android 程序员 移动开发

再见!onActivityResult!你好(1),太现实了

android 程序员 移动开发

再见!onActivityResult!你好,android开发电子书阅读器

android 程序员 移动开发

全网都刷爆了,不会只有你不知道吧—,android智能手机编程答案

android 程序员 移动开发

全面!2020华为Android岗面试真题(已解析含答案,android蓝牙开发框架

android 程序员 移动开发

2012.3.30微博热报:大方法、基础 vs 库_方法论_侯伯薇_InfoQ精选文章