技术的学习

  刚看到其他人的技术学习心得,在此做些分享会加上自己的一些看法:

  学习新知识的两方面:整体结构和细节,就像书的目录与具体内容,得先了解整体有哪些内容,然后再去学习每节的内容,避免深入细节而迷失学习的方向。

  整体结构:就像是接口,抽象类是做什么的,不用深入实现,看出整个骨架,分离出核心部分,在以后哪种场景下能用上。细节:这时就得了解里面的原理,不断实践,不断重构。

  第一步应该是找到这些主要的类和接口,找出主要的调用过程,清楚这个过程.这样,差不多就明白这个软件/库是怎么工作的了.第二步,是看这些主要类,接口的继承/实现,这样可以了解这个软件/库可以做什么,怎么扩展.这样,一个数M代码量的东东,可以在2~3天的时间里把它弄清楚。对主要流程的掌握和对层次的掌握是第一位的。第一头就扎进这些细节,那就完了。

   以问题导向,案例为基础的学习,不要拘泥于语言,要学习能学习到的最好的东东。比如,性能的关键在调度,这时候可以看看资源调度模式,hibernate算是把资源调度玩到了极致。基于事件的调度(如.net中的web cache),进程调度,线程调度,工作流,这些都算是行为调度,要是把这些东东融会贯通,掌握每一种实现的优点缺点。那么软件设计中所有和时间、并发、资源相关的东东都不在话下了。行为调度可以看看.net 中的cache实现,找一个工作流软件看看,找找几个线程框架看看,看看几个典型操作系统的进程调度机制。

  找一个较稳定的的案例学习,如:pertshop架构,包括其业务、构架,了解有哪些业务模块后再从小模块分析起,多看源码,看其怎么实现此功能的。

  同样的问题,多研究几种解决方案,分析它们的优缺点。

  

posted @   欢醉  阅读(305)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
历史上的今天:
2013-03-02 画廊视图Gallery
点击右上角即可分享
微信分享提示