对于程序员来讲工作外的编程需求如何寻找呢?

2019-12-18 17:58:25 +08:00
 dodng12
我坐标北京,写代码有 7 年了,自认为实现某一功能或基于开源东西修改完成需求问题不大,可是除了工作
上需求之外,如何自己主动去寻找写代码要实现什么功能呢?

举例:redis 的那个长头发的作者是怎么想到要把这件事单拎出来开源的呢。。。?
2675 次点击
所在节点    程序员
26 条回复
crella
2019-12-19 16:53:17 +08:00
@samwalt 不会 python,vb.net 也是面对搜索引擎编程。ruby 算是勉强背的住常用的。
samwalt
2019-12-19 18:20:35 +08:00
@crella 谦虚了。ruby 哪些函数性能消耗厉害?
EscYezi
2019-12-19 20:23:54 +08:00
当自己需要什么却找不到满意的工具的时候。
之前攒了些 txt 的科幻小说想看,iOS 上没找到好用的阅读器,就自己用 PHP 写了个网站,后来改造一下 API 弄了个小程序,结果发现个人资质通过不了......
用它看了两本书之后就没碰过了,后来网站挂了也没管,代码都找不着了🌚(基地系列真好看)
现在又觉得没有满意的日记应用,于是我又开始了......
crella
2019-12-19 23:20:49 +08:00
@samwalt 我也算是夸大了吧。

首先要看一下流行的那个 ruby 编程的规范,建议什么的。里面提到迭代器尽量用 range.each do |i|; …… ; end 而不是其他语言中常用的 for i in range 的形式。因为在 ruby 里面,后者 for 实际上是调用了前者 each 的封装,还有就是后者会把变量 i 暴露给代码下文。

还有就是 ruby 的函数的参数都是对象引用方式(我之前看到的,不知道是不是都是这样。)在函数里面修改一个传入的对象会影响到那个对象本身。

还有用 str <<来追加字符比 str +=快,也减少内存消耗,因为后者在不断生成新的字符串对象。隔壁贴说这在其他语言里 str +=基本上都被优化。

还有:a='t'; b = a; b.gsub!('t', 'y')会影响到 a 的值。

当 str.gsub!和 str = str.gsub 要达到同样的效果时,后者消耗内存较大,但是速度可能相差不大。

同时我也感觉 func1(obj1); func1(objN)比 obj1.func2; objN.func2 要快,这里假设 func1 和 func2 对 obj 的影响是等效的。

str.gsub 默认把参数看成正则表达式,我记得 string 有个方法会在替换的时候默认把参数看出字符串。

还有就是在某个函数里读取全局变量会比在函数内本身读取 传入的这个变量 的 等效值 要快。我觉得可能是搜索全局变量比较耗时。

str == '' 比 str.empty?又慢一点。

符号量之间互相比较和字符串之间互相比较要快,因为后者是遍历各个字符。

不显式指定函数的返回变量会慢一点。也就是函数里面最后一行的值加不加 return 语句。

感觉 ruby 的设计还是有些不方便的,奈何轮子好用,就 irb、load 和 eval 都够我用了……作为一枚菜鸟暂时没什么追求。
crella
2019-12-19 23:22:35 +08:00
还有就是在某个函数里读取全局变量会比在函数内本身读取 传入的这个变量 的 等效值 要 (之前这里输入错,应改成:)慢 。我觉得可能是搜索全局变量比较耗时。
samwalt
2019-12-20 09:18:02 +08:00
@crella 谢了。str += 在之前的 java 里也是生成新的字符串对象,最新的 jdk 里不知道是否优化了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/630260

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX