标签 杂谈 下的文章

今天去看望爷爷奶奶,玩手机之余,好友发来消息“有没有语句可以批量修改文件夹路径的”,遂询问其需求,交谈半分,发现是 dir/A => dir/2020/A,依据excel表对应的年份归类相关目录,确认下来判断几分钟绰绰有余(太天真)

由于我手头没有电脑,手机又没有合适的编辑器,好友提议他来写,我心想:行吧。

指挥对于有过编程基础,但日常工作已经无法再触及到的人来说,真的很困难。使用 readdirSync 列出目录下所有目录都操作了将近半个小时,调试更不谈了。

静下来我思考,对于一般的人们来说是否真的有学习的必要?有一定的必要,如果我的这位好友,简单掌握一点nodejs的相关技巧,相信对应他的工作会有相当大的帮助,不用费时费力的手动复制粘贴,认清重复性工作的规律,编写脚本执行工作,高效将是他最大的一个体会。

读完上面这段话,可能会有点是“编程依附于工作”的意思,我不认同这种观点,我认同编程是提高生产力的一种技能,可以变相理解为“偷懒”。前面说到的好友是正好处于海量数据的繁重处理,有点取巧的地方,但如果不是相关工作,你也可以在其他地方使用到编程,避免自己购买心仪物品惨遭平台差价打击,可以间接掌握英语,为了科学上网等。不需要多么热爱,仅仅因为兴趣而去了解,学习,满足需求乐呵乐呵就行。

几年前,也看到过“python进入山东小学课本”的相关新闻,现在回想起来,小朋友的竞争力从小就开始了,培养思维逻辑,观察孩子的兴趣爱好,解决问题能更富有逻辑思路。

另外编程应该算是门槛最低的一种技能了吧,毕竟这个时代到处充斥着程序,得益于互联网的开源共享精神,让相关资料可以随手可得,成本真的低,学了有收获,不学你也没有损失。

近期在学习laravel的使用

以前听说过,当时自己不知道为什么对thinkphp着魔,上手停不下,中文文档写的很好让国人理解,我也就是这其中的国人,那个时候thinkphp5还在测试阶段,有点小关注,发现与原来的使用差距有点大,没有继续看了(因为我懒吧?)

使用thinkphp之前,还有段时间学习过CodeIgniter俗称CI,是真的很小巧,小巧到很尴尬的境地,具体

当然,由于它的小巧再实现一些微型项目时,用用还是挺方便的,使用要求也没什么,基本就是上传即可开始使用。

因为我懒,于是就有放弃CI使用thinkphp的历史痕迹了

最近接触了laravel大家说的优雅是有其它的道理的

  1. 使用composer来管理依赖,抛弃手动require
  2. 结合php命令行操作
  3. 清晰有条理的路由管理
  4. 目录命名用意一目了然
  5. Eloquent ORM
  6. 查询构造器
  7. 结合bootstrap做成小demo非常快速(5.4修改源码可以使用bootstrap4相关)
  8. 目前我使用后的特性,还有许多我还没接触到的特性...

就在这些学习的过程中,感觉自己是可以有一定能力开发的

但是!!!深刻的感受到自己的基础知识脆弱不堪,理论体系非常不完善,缺口巨大

如:自己以前文章的内容有一长串字符串的出现,由于其中夹杂着中英文,做出的截取不能使用substr(),而要使用 mb_substr(),但是这里的bug是中文是3个字符(使用的utf-8编码),英文只占1个字符,对中英文混合输入的bug必然是会出现乱码的。

"这是一段abc字符串123大家壕"

使用 strlen() 与 mb_strlen() 结果

echo strlen("这是一段abc字符串123大家壕");
// 输出  36
echo mb_strlen("这是一段abc字符串123大家壕");
// 输出  16

使用 mb_substr() 截取前6个字符

echo mb_substr("这是一段abc字符串123大家壕", 0, 6);

当然你会说,这个没有问题好嘛,substr() 就是把每个字*3了

是的,没有错,但是这一切的前提下,全部是utf-8的编码集

echo mb_substr("这是一段abc字符串123大家壕", 0, 6, "gbk");
// 这是一��


这个小例子的实现让我简单的思考了一下接下来的学习进展,放慢脚步,深入的学习语言现有所带来的特性,充分利用自带功能,何必在自造轮子(我想我造出来的轮子应该是没有自带的好用的)

潜心,静气,思考

--------------------- 分割线 ---------------------------

另外 mb_strcut() 对比 mb_substr() 还是感觉好用点,精确到字节操作