• 技术的学习


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

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

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

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

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

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

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

      

  • 相关阅读:
    LeetCode翻转矩阵后的得分-Python3<六>
    LeetCode子域名访问计数-Python3.7<五>
    LeetCode 键盘行-Python3.7<四>
    流程控制<二>
    Numbers、Strings、Lists 笔记<一>
    LeetCode-数组操作-Python<三>
    LeetCode链表相加-Python<二>
    LeetCode两数之和-Python<一>
    使用Django创建网站项目<二>
    Windows下vue-cli脚手架搭建入门<一>
  • 原文地址:https://www.cnblogs.com/zhangs1986/p/3576412.html
Copyright © 2020-2023  润新知