后端开发经验-阶段性总结思考

背景 做了大半年左右的后端开发后,总结下相关感受。 技术栈:Python/Nodejs + React 行业背景:LLM 应用, RAG, Agent 后端开发思路 后端关注面更广范,几乎要关注整个应用软件运行所需所有的环节: 运维,应用,业务,服务,UI 等。 其中核心工作流在于:充分理解需求,转换业务需求到系统的功能性设计及非功能指标设计。 功能设计上主要关注:数据结构,类包,业务模块,工作流等 非功能性关注:性能,并发,安全,稳定等 玩的是数据 数据算是核心中的核心了。所有的业务基础都是按照这个来的 关系型业务 mysql 或者 pg,选一个吧,这里我还没遇到两者特别大的差异的地方,因为我的业务场景里没那么复杂 这里主要考虑:表结构设计,索引设计。 如果到一定规模考虑 分区,分表,分库 实际业务中大多需要找一个 ORM 库来完成在应用里方便的操作。 如果有 Redis 或者其他异步复杂的事务处理,需要进一步考虑数据一致性。 非关系 Redis,Es,Mongodb,图数据库 日志相关的一般存放到 mongodb 或者es,由于他们在倒排索引的效果做的比较好,方便快速全文索引,海量存储。 Redis:内存数据库,来缓解在 mysql里不经常变动,又频繁查询的操作压力。当然他也可以做一些简单的消息中间件等 图数据库 在一些场景里需要做知识图谱,做关系,图数据库特别适合。这里核心是实体关系等三元组信息抽取,已有知识更新。得益于大模型这个第二大脑的配合,可以通过提示词让LLM帮我们去做实体抽取,三元组信息变得简单很多 小结 这块也是一个非常大的技术体系,往深走的话需要专题讨论。 我这边是入门不久,着重看了 Mysql 执行引擎的内容,B+ 索引的来由。练习了常用 SQL 语法(leetcode 50高频sql) 由于之前了解过大数据基础知识,所以对于我前端出身学习这块,难度不大。 一些中间件 消息中间件 几乎是必须的,做异步,服务结构等 任务队列 做性能,并发等 日志,错误处理等 微服务体系 很多公司其他基础模块都是基于微服务的方式提供的。系统扩充到一定程度肯定少不了微服务架构的梳理 得益于 Service Mesh 这种微服务2.0架构。做上层应用变得异常简单了。日志,监控,服务注册调用 等都在 SideCar里 我之前有过 Nodejs 接入微服务体系的经验,所以这块难度也不是特比大 计算机基础 计算机组成:cpu,gpu,硬盘,内存 操作系统:进程线程协程等,资源管理,IO管理:网络/文件 编译:前端:分词,语法分析,语法树,后端:机器平台生成 分布式-时间空间互换 这里我觉得是计算机性能上一个很重要的思路,在优先的单机资源下实现高复杂度计算的模式。大数据的基石 Hadoop也是这个核心思想。 ...

九月 22, 2024 · 1 分钟 · zhongling

苏东坡

林语堂苏东坡读后感 进入偶然原因看了些苏词,同时也看了林语堂的苏轼传,这里记录下所感,所想。重点不是描述豪放的苏词,而是苏轼这种人才的优点,缺点。苏轼若是在当代社会又是咋样的? 大概过下「苏轼传」 苏轼传记有很多,各种角度去描写的,我选择了林语堂的这本。林语堂是民国时期著名文科生,特点中外双休,说来奇怪,他写的苏轼传是用英语写的,或许是为了向世界科普这个中国巨星。而我读的却是一个国人的译本。既然是面向世界的,选择的角度肯定不太一样了,也会拿西方的文豪大家与苏轼对比。 这本书里不像一些其他书,用很多首苏词来作为切入点,描写。他直接以苏轼的视角,按照时间线,穿插一些中间人物大事记(弟弟苏澈,伯乐欧阳修,政敌王安石,他的三任夫人,等等),来完成的,也加了不少北宋的政治经济背景,各个皇帝的特点等。所以读下来就是一个北宋中后期的国家命脉缩略。 不止于诗词 苏轼写词,写诗,是他的立命之本。他的年代是文学的时代,家族里也有好的基因,氛围。他叔已经是当官的,他爸虽然无官,但是唐宋八大家之一,他爸的六国论,他妈的思想已经不是普通妇人的思想了。 如此的家境放到现在,如果不是特别不着调,抬也能给抬到一个合适的位置。况且他和弟弟在立命之学的年纪里一起下了重功夫,使得他基础太扎实了,所有文字创作信手拈来。任何行业都需要一个扎实的基本功,才能有上层轻松的创作,作家,歌手,程序员,运动员,哪个不是呢? 他呢,让人津津乐道的不止于诗词。乐天派,豪放派的作风。到哪里都有朋友。喜爱喝酒。也会接触名妓。说到这里,我是觉得不能单纯看他的这些特点,结合他背景:少年成才,国家顶级人才,得到皇帝的大力认可,可谓前途无量。体验过生而为人的巅峰,这个自信自然养成了,也早已脱离了为生计奔波的烦恼。所以即便有在政治斗争里的一贬再贬再再贬,那都不是事。 林语堂描写他的政论也是一流的,这个是位难得,宋朝不缺文学,但是文学和政论都很好的就少了,范仲淹,欧阳修,司马光,王安石都算是,苏轼当然也算,他的特点似乎是更接地气,更是站在底层大众这一侧。实事求是,真正做事的人。 他对生活很热爱,对细节观察也很到位,体现在诗词里,也体现在他的书法与国画里,他是南方国画鼻祖。国画里对动物的传神,对山水天人合一的追求,要求作者必须对细节观察做到细致入微。 能跟任何人玩到一起 书里一个章节:和尚,酒与名妓,来形容他的爱好,形容的真好。他结交了很多僧人,与他们聊思想,交换灵魂。或许这点也是构成他性格的重要瓦片。他朋友圈里很多都是追随他的,比如苏门四学士等。 皇帝点过他的名,嫉妒者们对他一再打压,太后出于女人第六感,认为他是一个可靠之才,恢复他的官位。他有很多酒友每到一个地方,都不缺朋友,分布到各阶层里。 他与头号政敌王安石,最后也能畅谈下想法。 他也是一个普通人 本质上他也是追求名利,没有得到的时候也会迷茫,有了机会的时候也会努力抓住的。在遇到乌台诗案的时候,他也是慌不知所措,内心是恐惧的,害怕死亡,更害怕家人受到牵连。 作为一个动物,他也是爱好吃喝的。人生中后期也追求长生不老之术,每次被贬也都带了很多家人一起,这点来看条件已经不错了,比起当时草民生活上强了太多。 也正是一个普通人的特点,才愿意被更多人追随吧,才能被千年后的我们依然喜欢。 再无苏轼 一个现代社会里很难再出现苏轼这样的人了。首先培养出这样的人才需要巨大的精力,其次在阶层固化,大众追求的理想已经很难到达苏轼这种高度了。于我们苏轼的故事当作聊天语料,当作精神参考,其作品当作我们引经据典的素材,足以。

六月 30, 2024 · 1 分钟 · zhongling

Python 学习总结

为什么要学 Python 最近开始接触 Ai 相关的东西。主要是应用层的内容,比如 RAG Agent 等。此类应用特点:无需太多安全性能,偏向于工具,这块技术发展变化比较迅速,大模型日新月异,应用层技术也跟随变化较多。 根据此特点选择脚本类型语言作为应用层开发语言。待选语言有 Nodejs python。 个人虽熟悉 Nodejs,但鉴于 Python 生态较好 性能较好等,最后决定 Python。 Python 综述 Python 第一版本发布于 2000年,目前在 Tiobe 排行榜里人数排名第一,社区热度也升为第一。 定位:高级语言,通用能力编程语言 特性:动态语言,基于解释器,gc 等 范式:函数编程,面向对象,面向过程 主要在 数据处理,计算,Web等发挥作用,AI 领域使用很多, Web 开发也有很多场景 运行模式支持 多进程,多线程,协程 执行流程 这一章直接问了 gpt,下面都是 ai 的回答 在Python中,程序的执行流程通常是按照以下步骤进行的: 解释器读取源代码:Python解释器会逐行读取源代码文件,并将其转换为字节码形式,这是一种中间表示形式,可以被Python虚拟机执行。 词法分析和语法分析:在这个阶段,Python解释器会将源代码分解成单词(Token)并构建语法树。这个过程包括词法分析(将源代码分解为Token)和语法分析(根据语法规则构建语法树)。 编译字节码:Python解释器将语法树转换为字节码。字节码是一种中间形式,类似于机器码,但是不是针对特定的硬件架构。 执行字节码:Python虚拟机执行字节码指令。这些指令会被逐条执行,从而实现程序的逻辑。 动态类型检查:Python是一种动态类型语言,因此在运行时会进行类型检查。如果类型不匹配,会引发类型错误。 垃圾回收:Python具有自动内存管理机制,包括垃圾回收。垃圾回收器会定期检查不再使用的内存对象,并释放它们。 异常处理:在程序执行过程中,如果发生异常,Python会查找合适的异常处理程序。如果找不到合适的处理程序,程序会中止并打印错误信息。 程序结束:当程序执行完所有的代码或遇到显式的退出语句(如return或sys.exit())时,程序结束执行。 语法 跟我熟悉的 JS 差别很大,总体感受很灵活。基础的比如:变量 循环,函数的定义参数。可以直接看官方文档 个人感觉 1-2 周左右时间,即可上手基础开发。 这里只提下我印象比较深刻的函数部分: 通过 def 定义,通过缩进写函数体,当然也可以添加类型系统,比如入参数类型,返回类型。基础demo如下 def add(num1, num2) return num1 + num2 sum = add(1, 2) print(sum) 函数参数可以用 * *key_yars 来动态接收 ...

六月 22, 2024 · 2 分钟 · zhongling

AI应用实践的思考

近两年AI太火了,认真体验及分析后, 决定尽量跟上, 最少要把相关工具使用好。恰好工作中也在做相关工具,遂梳理之, 以加深对这块的理解。 打败马车夫的不是汽车本身,而是会开车的司机 生成式AI的爆发 AI 这个领域很早就开始了,这个理念也很早就有了,比如早期图像处理,语音识别,阿尔法go等。可以回溯之前很多年。为何最近两年开始爆火了。我认为原因有几点: 技术突破: 大模型的底层基于神经网络的深度学习推出了 transformer 架构。改变了大模型深度学习的格局带来了质的飞跃 基础设施发展: 一个模型巨量的计算,消耗大量资源。硬件基础设施的发展能降低训练成本,试错成本,让更多想法去实现 数据的积累: 互联网发展至今产生了大量数据,可以作为训练知识来让模型学习,这些都是人类发展产生的财富。 简单说下 Transformer 最早是在论文 Attention is all you need 提出注意力的机,以解决在序列生成中,长序列情况下的精度,简单一点来说是通过空间位置编码,扩充之前神经网络里的一些信息,使得即使再有更多长度,也不会让精度下降。 现代架构里添加了很多其他模块:比如多头自注意力机制,并行机制等。 总之结果是:推理精读更好,训练效率更高。这是当今 AIGC 爆发的技术基础 能改变什么 有人说任何行业都可以重新再做一遍 人类的进步,从来离不开工具,有了轮子就有了车,马车,有了蒸汽机就有了汽车,这些都是革命性的改进,都是依赖工具的。工具改变了生产力,进一步质变为影响生产关系。促进了社会整体变化。 总结下来当前影响最大的几个面: 广告/自媒体行业的商业模式 剪辑,修图,这种体力活完全可以用AI帮忙做了 教育教培,学习方式 对于家长可以用 AI 辅助教养小孩子,学生也可以方便的用AI自助学习。 工作效率提升 有些细节直接用AI生成即可,员工负责更高一层的控制 软件开发程序员 我本身就在程序员行当里,对这个提效深有体会 局限性 正如人类能想象到的东西都是现有认知范围内现有知识体系内的东西一样,AI 学习能力目前还处于理解现有知识体系的状态。无法突破知识界限,只有在有限的知识范围内做一个最强大脑。 所以局限性在于,他只是一个只能基于现有知识的超强大脑,无法升维无法突破边界。 当然如果有了一个这样超强大脑,本身就是一件很厉害的事情。至于突破编辑,升维知识,这个还要考我们人类,然后再喂给AI,形成一个循环。 一旦AI具备 公理,定律等级别的创新,是非常恐怖的,人类的一切迷惑将不再是迷惑,我是谁?来自哪里?要去哪里?上帝是谁,造物主是谁,各方神灵,神明又是谁?宇宙之外在哪里?生命是什么?为什么活着,为啥又要死去 模型 百花齐放,百家争鸣。通用,垂类,领域模型等太多了,发展过于迅速,具体模型此处不多谈。 要谈的是: 深度学习模式的变革,基于 Transformer 架构的深度学习促进了当下模型厂商的发展,多层 Transformer 架构使得大模型更像人类大脑。 向量化,万事万物皆是向量,皆是数据,向量这个结构让事物之间的关系拉平了。就像分子,化学元素一样,构成了物质世界,而向量则在虚拟世界里描述这个世界 基于这两个重要的底层知识,模型的发展,飞起来了。 菩提本无树,明镜亦非台,本来无一物,何处惹尘埃 AI应用 大模型还毕竟只是一个最强大脑,一个超强CPU。我们知道通用计算机,不止CPU,还有一些外围设备才能通用工作,人类也是,不止大脑,还有眼睛,手,等外围设备。 所以 AI 应用,或则 Agent 的概念,可以如此类比。 ...

三月 22, 2024 · 1 分钟 · zhongling

了凡四训

此为一种劝诫训子的书,主要方向是如何处事,也可以是一本养心之书。从中国传统价值观及儒释道的哲学体系来讲述如何处事。总体分为四部分。 作者是明万历期,69岁时所著。推荐此书的名人:曾国藩,据说其号 涤生 就是因为此书而来;稻盛和夫等。 阅读建议:作为枕边书,或者心静的时候细读。 分篇章总结 立命之学 此为开篇,作者以自己早起人生经历,讲述处事流程中第一个阶段:立命。非常重要的人生阶段,大概人与人的差距也会在此拉开。 我命由我不由天 本篇最重要的概念了算是。具体一点就是命运是自己把握的。这一点估计现代人看到后会有很多反对点:起跑线不一样,人生结局可大大不同了。 我的理解是:天生给到的东西已成定行,无法改变。但是之后的情形,还需通过自身不断学习,不断发展来改变。我们尽量做好能做的,其他的只能坦然接受。 弃医从文 改变医生的方向,发展仕途的方向。中国历来都是学而优则仕,其他都是歧途。当下路子多了起来,但是遇到环境恶略的时候,发现还得是公务员稳啊。 持续学习 文中讲到:顺利时也不要忘记努力发展,说不定啥时候不顺就来了。跟当下持续学习的概念不谋而合。随时准备拥抱变化,唯有持续学习,持续适应才能得心应手。 不念过往 从前种种譬如昨日死,往后种种譬如今日生。 改过之法 内心,真心,是前提。我觉得这一篇是重要紧急四象限的第二象限里的东西,很重要,也很容易忽略而没做好,应该是我们每天首要考虑的东西 先有耻辱感 是否曲直,做一个有原则的人 发自内心的行动 是否是真的在做,还是在模仿,还是在做一个样子。改过之行,来不得半点虚伪。 积善之方 这一篇里讲述了要行善,行什么善,从十种角度来分析 善,区别什么是善,如何下后。此篇结构简单,但是内容较多,可以选择行阅读 但行好事莫问前程 这一篇是很佛教里的思想了,善有善报恶有恶报。我不敢苟同这个观点,现实遇到太多事情违背这个理论了。 但是我觉得行善还是有必要做的。并不是为了有善报,也不会因为你行了善就会有善报。最起码不要去做恶吧,能有一份心安理得不就够了么? 不平等的地方太多了 社会上不平等的地方很多。若你可能是占便宜的一方,你会怎么想,而你是吃亏的一方,你又怎么想? 做事情不可太功利 太过于功利,可能会变形。读一本书就想获得人生智慧,学一个技能就想发财致富,别想了。 谦德之效 为人要低调的方式。不要轻易显山露水,少说话多干事。勿要恃才傲物,做事抱有空杯心态,虚怀若谷。 总结 这本书,于我作为一本修心的书去阅读。对于有些人会问值不值得读,我觉得非常值得。但书和道理是死的。看你怎么理解消化了。 从前种种, 譬如昨日死; 以后种种, 譬如今日生.

十一月 1, 2023 · 1 分钟 · zhongling