对于程序员来讲工作外的编程需求如何寻找呢?
上需求之外,如何自己主动去寻找写代码要实现什么功能呢?
举例:redis 的那个长头发的作者是怎么想到要把这件事单拎出来开源的呢。。。?
举例:redis 的那个长头发的作者是怎么想到要把这件事单拎出来开源的呢。。。?
我看过 python3 的 pandas,好像没有自动更新单元格的说法,对应 Excel 的自动重算工作簿功能。
所以我现在需要一个:后端:具有 excel 基本文本函数、基本计算函数、基本统计函数的功能;具有自动重算表格的功能、自定义变量和函数的功能。前端:简单的网页或者 qt windows 程序都可以。
之所以有这个需求,因为之前处理数十万行表格,wps 稍微力不从心而且内存占用 2G 多;看不惯 vba 语法;因为经常要更改公式和判断逻辑,又不愿意用 Excel 高版本的数据库函数来写公式:最后竟然是手写 vb.net 程序来加工的。读取 csv,生成结果到 csv,.net 4+g4560 单核要一分多钟时间。
那个需求的语法呢,尽量简单。
现在稍微实现了一些很简单的计算功能,感慨实在是太难了。自动重算工作簿还没想好怎么搞。
还有 excel 的多层条件判断,几个括号叠起来实在太恶心…… 处理 vlookup 和 iferror,加上各种 offset、indirect,还有函数之王的 sumproduct 和 mmult……这些其实用常用的脚本语言来处理,绝对比 excel 的方式更好理解。
首先要看一下流行的那个 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 都够我用了……作为一枚菜鸟暂时没什么追求。