Markdown Converter
Agent skill for markdown-converter
首先开源库都会实现某个功能,我们先要理解这个库是干嘛的
Sign in to like and favorite skills
首先开源库都会实现某个功能,我们先要理解这个库是干嘛的
然后我们看demo,看示例代码,示例代码一般是实现这个功能的api
然后我们看整个库(工程)的结构,根据单一职责的原则,一个工程要 实现某个功能要分为很多模块,各个模块都有不同的职责。 根据开闭原则和依赖倒置,各个模块之间的依赖肯定是依赖于接口或者抽象类 所以我们看接口或者抽象类的定义,根据接口名来初步判断这个模块是负责什么 职责的。
这样我们能大概分清楚这个工程有几个模块构成。 根据里式替换原则,各个模块的抽象肯定有一个或者多个实现。 那么我们ctrl+t 观察他的所有子类,就知道这个模块具体实现类有哪些
我们根据以往经验来根据命名来判断这个模块是什么职责 比如: XXXTransformer(变化器,对传入对象进行处理,返回处理后的对象), XXXConverter(转化器,一种数据类型转化为另一种,比如String转Json), XXXDispatcher(分发器,读取数据,然后分发给指定的处理类) XXXSource(肯定是负责提供某种资源的类) XXXMaster(根据迪米特法则,肯定是负责创建和协调各个模块的类) XXXBuilder(肯定是构建者模式来构造摸个对象的类) XXXStrategy(肯定是策略模式中用到的类,具体XXX这种行为的策略,比如EncodeStrategy) XXXFetcher(是获取XXX资源的类) XXXEmitter-发射器 XXXException-自定义异常 XXXFetcher- 配置获取 XXXHelper-某功能工具类 XXXLoader -加载类 XXXManager - 管理类 XXXLauncher - xx启动相关逻辑 XXXTask - 线程池的执行任务 XXXWrapper - 包装模式,屏蔽内部细节 XXXHolder - xx对象持有类,相关处理 XXXGlobal - 全局变量 XXXConstant - 全局常量 XXXService - 模块对外提供服务的接口 XXXServiceImpl - 接口实现类 XXXLogic - 某些通用逻辑,公共逻辑,独立逻辑
代码肯定有设计模式,遵循设计模式6大原则, 比如 观察者,observable-observer Subscriber-Publisher
结合名称和设计模式能确定这个类大概是什么职责了。 然后再看看基类上的注释就差不多理解这个类是干啥的了
tpp:代码超过100行就拆分职责,搭配上设计模式,可拓展,支撑未来业务。 抽取封装。用框架,rxjava,jetpack。
=======架构设计 所有类加上基类,如果以后统一给子类加逻辑,就可以在基类里改动 所有调用加上接口,接口隔离,方便以后灵活替换实现类
=============如何阅读代码、读代码,理解代码================== 如何阅读代码 首先,他们写的代码肯定要遵循设计模式6大原则,他们的类设计一定是单一职责的 所以我们看一个类,看类名( )
,先看一下注释和方法名,和里面的方法,知道这个类的职责是什么 然后是开闭原则,里式替换,依赖倒置,所以他们每个模块肯定会设计抽象类或者接口
然后这些接口肯定有子类,就是具体功能的实现(或者不同功能的实现)。而且各个模块之间 肯定是依赖抽象(就是持有其他模块的接口) 迪米特法则,所以如果模块过多,肯定会有一个Manager类,来协调各个模块之间的关系 避免他们之间过度依赖,就像EventBus.class Volley.class Picasso.class 接口隔离,他们设计的接口肯定是不能再分了,里面没有多余的方法 通过这6个模式的分析,我们能知道一个项目大体有几个模块,每个模块负责什么 然后他们里面肯定用了23种设计模式。所以我们根据模式的作用,也知道他的逻辑 迪米特法则,就是各个模块之间,不能是网状结构,而是流式结构或者路由结构
首先要明确你的框架要解决什么问题,你的竞品有哪些,他们有哪些不足,你框架的优点是什么 然后梳理一下你框架需要的功能点,然后根据不同的功能点可以用不同的设计模式解耦 做到高度可配置,可拓展。 比如 Platform.get().doSomething(); 这就是做平台适配
我们看源码总是会忘,EventBus源码看了一遍,写了一遍,就是没写总结 最后问原理,还是忘了具体的细节,记得一个大概,所以现实中我们可能 对一个框架用的不多,而且不经常看他有关的文章,那么时间长了肯定会忘了细节 所以这个时候写总结文章就很有用了,这就相当于把知识缓存到硬盘上 等面试的时候再加载到我们的脑子里 写文章需要写具体的实现流程,关键点。然后总结概括,因为有了概括 你才能将细节串联起来,更容易记忆。
有很多文章已经很久远,这些文章的api可以已经不存在了, 所以我们获取信息的最好方式就是看官方文档。
很多新技术,或者比较复杂的框架,不会用,看不懂没关系,哪怕通读一遍 但是一定要趁早看,隔天再看,隔周再看 因为人脑在睡觉的时候会自动整理大脑中的记忆。所以很多时候在过段时间 再看一下技术文章,一下就有通了的感觉,就是这个道理。
API:(Application Programming Interface,应用程序编程接口)是一些预先定义的函数(方法) 比如Android 的 framework api 使得我们能使用Android系统的一些功能,又无需访问源码,或理解内部工作机制的细节。
框架:框架就是别人写好的代码,你可以直接调用
只要有相同的代码,都可以抽取到基类中,而不同的部分可以用泛型表示
目的:js,jx
学习: gradle学习 产品学习,尝试用技术解决产品问题,推动产品发展 架构学习,各种模块使用设计模式来增加健壮性,拓展性 方法论沉淀输出
方法论: 工程基础建设:瘦身套件,启动统计套件,代码检测套件,持续集成 线上APM治理:xcrash,卡顿,启动时长,IO监控,主要业务时长 热修复:
今天也不知道写啥,今天是2018-9-6,离去年的十一快一年了,这一年真是煎熬 2018-10-09 中秋结婚,加上国庆玩了7天。。没有commit 2018-10-24 公司项目停了,换新的公司,希望是个新的开始 2018-11-16 (晴·2°)马上要开始新的项目了,有挑战,希望一切顺利! 2018-11-27 20:55(晴·5°)这版不做移动端了,被叫去写游戏,自己也开始学js了,加上小静又说去云南。。亚历山大 2019-02-14 11:39(雪·-2°)shit! 开工第一天;前两个月疯狂加班;希望今年顺利。 2019-03-22 17:50(晴·13°)这段时间真是日了狗了,疯狂加班不说,项目整体还不给力 2019-04-29 14:42(晴·19°)又经历了疯狂加班后,项目终于接近尾声了。。。最近身体也出现了问题,希望这一年你能给力点,脱离苦海 2019-05-29 10:03(晴·26°)麻痹,狗日的一句话就能让我压抑,正常了一个月后又tm开始飘了 2019-06-25 10:32(多云·30°)努力的意义之一是有能力离开傻屌 2019-07-10 17:55(多云·30°)上周四来了新部门,马上开始0.3版本开发,希望一切顺利。。。 2019-07-23 14:41(晴·34°)选择比努力更重要,5年后想为自己做点事。 2019-08-06 14:42(阴·32°)"你多分给他一点,不能光你做",wqnmlgb,老子总有一天要干你 2019-11-12 20:08(阴·10°)来新项目半年时间,总体还是状态越来越好。项目可能要改方向,做手写板。 2019-11-20 10:52(晴·3°)项目稳定,状态也稳定,但是现在这个经济就像今天天气一样凉,不靠自己永远被别人牵制,关键还得靠自己啊 2019-11-20 23:30(阴·0°)择日不如撞日,就今天开始吧,定个1000块的小目标! 2020-01-07 11:41 (多云·1°) 昨天到了新的办公地点,新的环境,新的开始,2020加油! 2020-05-21 18:23 (多云·19°) 今日复工第一天,上半年因为疫情在家办公了小半年,年后开始为自己做点事情,虽然效率不高,走的也很艰难,但是也会坚持走下去,走到下个milestone 2020-09-03 11:38(多云·25°)这几天天气转凉,这个夏天算是过去了,5-6月比较努力,7-8月学习时间开始下滑,有两周是因为智齿发炎耽误了。但是最近心情还不错,最近半个月把智齿拔了,9月开始继续努力吧! 2020-10-26 14:39(晴·20°)换老大的第一周,压力要比之前大,有压力才有动力,锻炼和学习,都要加油!只要做好每天的任务,总有一天能走出来!一定注意要清除消极偏见 2021-02-22 22:11(多云·6°)终于熬过了这狗日的冬天,新的一年,第一天上班,加油吧。 2021-03-08 18:21(多云·9°)开年刚要奔跑就重重的摔倒,难道这就是我的宿命? 2021-04-12 16.53(多云·15°)自习室需求结束了,晋升也结束了,转部门也结束了,年终也发了,开始迭代一个小版本。跌跌撞撞,看不到未来 2021-04-26 18.25(阴·18°)17号团建回来,到20号,2.1.2版本提测进入测试,也慢慢事情少了,好好休息,好好锻炼 2021-05-18 15.18(多云·32°)最近状态慢慢回升,有动力才能自律,才能克服压力,进入对的状态。多巴胺,压力,抑郁,神经衰弱,戒。动力能解决前三个和最后一个,剩下一个加油吧,早晚要面对。 2021-05-27 14.50(雨·23°)25号搬了新工位! 自习室 2021-06-07 11.50(多云·26°)其实不幸福都是因为比较,做了超出你舒适区的事情。你周围的同事都比你强,你每天的工作都面临的困难,你周围的人都过的比你好。你短期又不知道怎么超过他们,你就不幸福。 2021-06-22 20:05(多云·29°)这多半年真是锻炼心力,持续的挑战(限时,困难,不擅长)插件化,口算组件,自习室,广告,整页检查,短视频,自习室。包括晋升,分享,健身等等。一个接一个。心态也淡定了许多。 2021-06-25 10:58(阴·20°)嘴上长泡,事情不停,bug不断,难解,限时。分享的压力。身体的压力。在磨炼你的心力和体力,放松,多休息,超量恢复。 2021-06-28 10:58(晴·31°)看了下这几年github的commit,18,19,20上半年是成长最多的时候,20下,21上,疲于奔命,没啥进步,还落了一身病,最多可能是心力的磨炼? 2021-07-07 10:22(晴·27°)昨天团队换新部门了,做音视频通话,我也角落里的工位,666 2021-07-12 15:12(雨·22°)换老大了,赫赫要走了 2021-08-02 18:38(雨·30°)双减下来,东西还得做,抗压力还得练,身体还得练,创业还得练 2021-08-16 21:45(暴雨·22°)音视频bug比较多,调试困难。还得mt面试,那种压力感觉又来了。但是快速调整自己,安排计划,放平心态,结果交给时间,不能垮!!! 2021-11-26 15:07(晴·13°)10-27来新办公位,一个月也慢慢适应了,这一个月要早起锻炼,真心累