编程思维转变

坛里老是C大的叫,其实我技术水平相当落后,还停留在2014年PHP鼎盛时期(后面大学折腾+出国,没学过新的),而且不思进取。论坛里比我技术好的一抓一大把,看着一大堆00后脚本框架玩的飞起,心里既羡慕又抵触。像我这种又老又没精力折腾的,慢慢地就被淘汰了。世界就这样,要不断拥抱新变化,然而拥抱了也干不过人体的衰老和精力的丧失。所谓长江后浪推前浪,新旧更迭、天道轮回。之前抱怨半个多月也该专心研究下技术了,这两年接触新技术挺多的。

面向对象,虽然我天天骂不过大家都在用,也没啥办法。以前写PHP就是纯粹的面向过程,会写几个函数(方法)都感觉自己很牛逼了。后面了解面向对象的一大堆东西,其实概念倒不是很难懂,主要是学名词费劲,像什么继承、泛型、抽象、接口。感觉面向对象最大的优势,就是把所有功能模块化,每个模块内有自己的数据和方法,闭环处理然后输出。如果function的话举例说一个循环变量,就必须在调用方法前先定义,面向对象等于把这个变量和方法打包了一下,然后内部消化了。尽管如此我还是觉得面向对象麻烦、逻辑难懂,写程序能不用尽量不用。

数据库,以前搞的都是MySQL类型的数据库,比如MySQL、MariaDB、PostgreSQL,除了语法不一样,基本原理和用法是差不多的。但是现在大数据盛行,很多需求都向NoSQL转移了,比如流行的Hadoop、Redis、MongoDB、KV都是这个范畴内的,学几个便可以触类旁通。我个人对这玩意的理解很简单,就是传统MySQL是指定有什么字段,每个行都包括这么多列,而NoSQL本质上是一个K-V类型,由用户自己定义V值内可以存储的字段,整合起来就是一个对象。这样的话每行可以有不同的字段结构,灵活性更高,还可以根据需求进行索引,性能也相对提升。

现在跟公司上班,号称国家高新技术企业,所以啥都是最新的,技术也是SpringCloud+Hadoop+Redis+Vue这一套。虽然项目代码写得稀烂,跟着搞搞还是能学到不少东西的。想到了我自己的程序规划,之前还想着循序渐进逐步改善,现在想想长痛不如短痛,万事开头难,不如一步到位做好。由PHP+MySQL改为NodeJS+MongoDB,一方面拥抱异步、携程、面向对象,另一方面这俩玩意在以后的Serverless大潮里也能经久不衰,主要是可以白嫖CloudflareWorkers+MongoDB(或者KV、CouchDB、NoSQL,反正都是NoSQL改改就能通用)。等公司这项目搞差不多了,自己的程序也该基本搞定了。

NodeJS + NoSQL 解决了以前开发的痛点:

1. 不适用缓存让数据库中的程序配置一次性读取。PHP每次运行都是从头建立数据库连接,读取文件。而NodeJS则是运行时建立数据库连接,读取配置,后续访客进入只是额外建立一个Server对象。这样可以实现仅站长首次运行加载配置。

2. 数据库如何对同列多个数值创建多个索引?MySQL无法解决,而MongoDB可以轻松利用Multikey Index实现这一功能。

NodeJS + NoSQL 可用的白嫖托管方案:

1. AlwaysData(NodeJS + CouchDB)

2. Cloudflare(Workers JS + KV)

3. Deta.sh(Micro NodeJS + Base NoSQL) 

文件存储的话回头接入第三方接口部署,也再搞个本地存储对接的程序。

近期设想:搞一个超大型分布式图片库

目前来说。。。vue还真的是要会

yixianc
引用
目前来说。。。vue还真的是要会
yixianc 目前来说。。。vue还真的是要会

工作不是前端的话其实没必要,Vue语法很多是前后倒置,感觉挺奇怪的。

如果只是自己玩玩,把HTML+CSS+JS这三学明白就差不多了。

cf的那个workers kv我是真觉得不好用,纯粹的kv很难解决以前的跨表查询这种需求

v6666
引用
cf的那个workers kv我是真觉得不好用,纯粹的kv很难解决以前的跨表查询这种需求
v6666 cf的那个workers kv我是真觉得不好用,纯粹的kv很难解决以前的跨表查询这种需求

mongodb和大部分nosql都没有跨表查询,只能重写查询语句了。

C大威武[em_25]

匿名
引用
C大威武[em_25]
匿名 C大威武[em_25]

还是大C舒服点[em_2]

C
引用
v6666cf的那个workers kv我是真觉得不好用,纯粹的kv很难解决以前的跨表查询这种需求 mongodb和大部分nosql都没有跨表查询,只能重写查询语句了。
C mongodb和大部分nosql都没有跨表查询,只能重写查询语句了。

微服务的话,基本上是告别跨表查询了

NoSQL数据库 完美吻合程序里 聚合根/子实体间的关系

出来工作就一直用的ORM框架,SQL语句现在都只会一点点了。。。

wxjv99
引用
Cmongodb和大部分nosql都没有跨表查询,只能重写查询语句了。 微服务的话,基本上是告别跨表查询了 NoSQL数据库 完美吻合程序里 聚合根/子实体间的关系 出来工作就一直用的ORM框架...
wxjv99 微服务的话,基本上是告别跨表查询了 NoSQL数据库 完美吻合程序里 聚合根/子实体间的关系 出来工作就一直用的ORM框架,SQL语句现在都只会一点点了。。。

是的,数据库(NoSQL)和前端(Vue)都开始往KV方向转变,编程思维统一是迟早的事。

我们公司还有好多PHP服务,不过都是历史遗留的,新服务都切到go了

mxb
引用
我们公司还有好多PHP服务,不过都是历史遗留的,新服务都切到go了
mxb 我们公司还有好多PHP服务,不过都是历史遗留的,新服务都切到go了

随着数据量增长这是必然趋势了。特别是数据库分布式,传统自增ID也会被淘汰,改用唯一性的ObjectID来存储。这样即便是不同地区的集群,也能最终实现数据统一。

1