搬砖工程狮 1169430612
关注数: 145 粉丝数: 67 发帖数: 666 关注贴吧数: 186
《uni-app多端跨平台开发》第8&9.1~9.5章 uniapp中的平台判断有两种场景,分别是编译期判断和运行期判断。 编译期判断可以写在script、template和style标签内。编译期一般就是用ifdef,在我们的代码中多次用到,但需要注意控制条件编译的个数,按照之前约定的规则: 同一个函数里面最多 1 个条件编译(要求) 同一个vue组件最多 3 处条件编译(要求) 积极拆分函数、文件(建议) 运行期判断代码环境,需要用uni.getSystemInfoSync().platform判断客户端环境是Android、IOS还是小程序开发者工具,但需要注意的是,无论是微信、百度还是支付宝下程序,其返回值均为devtools,不能直接细分 一般认为view组件与div组件完全等价,其实view组件自带一些效果属性,如hover-class等属性,如果有需要用到这些效果,可以直接用view 使用scroll-view组件可以解决滚动容器的问题,与传统div的overflow相比,其好处是封装了很多滚动相关的方法。在设置竖直方向滑动时,如果需要实现滚动到顶部,需要分位两步: 1. 将监听到的滚动位置的值赋值给竖向滚动条位置 2. 然后再使用setTimeout或者nextTick异步延迟将竖向滚动条设置为0 与原生小程序相比,多了第一步,在uniapp官网的示例中也是这么写的,代码注释是解决view层不同步的问题,为什么要这么做?做了个实验,当滑动时,scrollTop的值不会跟着变,只能通过event事件获取scrollTop,所以在设置时,需要先设置下scrollTop,避免不同步 需要注意,在webview渲染的H5中,scroll-view容器更重,其性能比不上页面滑动 在微信小程序中input组件较多时会卡顿,属于底层问题,没有好的解决方案,只能少用input,比如用text代替input,然后在用户实际输入时才展示input swiper已封装直接使用,需要注意的是swiper-item内部使用的是image组件,而不是img标签 mobile-view和mobile-ares是对移动组件的封装,后续有拖动需求时,如发布器的九宫格、我关注的吧模块可能会用到 text和rich-text都是用来展示内容的,不同之处在于rich-text可以展示富文本内容,类似于v-html,需要注意的时,这两个节点的内容输入是数组,而服务端通常是字符串,所以需要调用html-parser进行解析
《uniapp多端跨平台开发》第5-6章读书笔记 pages表示对页面的路由配置,uniapp最终打包产物是否包含某个页面,也是根据这个配置来的,所以有页面增减时都需要在这里同步配置。这里的路由管理方式还是向小程序对齐的,并没有像H5一样用vue-router去做路由管理 globalStyle用来配置一些全局样式,在每个page的配置下面,也有单独的style配置,优先级更高,可以覆盖globalStyle的配置,这一点也是对齐小程序的。自定义导航栏的时候,需要增加--status-bar-height属性,避免整个状态栏被页面直接覆盖。 easycom是对vue传统组件引用方式的简化,只要把组件放到components文件夹下,并且满足components/组件名/组件名.vue的命名方式,可以直接使用组件,无需import之后在components中声明,这应该是框架底层按照此规范做了优化。 tabbar的配置也是与小程序对齐的,贴吧小程序的首页就是多tab的形式,当然这些配置在H5端也会生效,至于在H5是采用SPA、还是组件形式管理的,需要实际使用看一下 分包加载是针对小程序的,主包主要用于放置默认启动页面,以及一些所有分包都需要用到的公共资源,而分包则根据pages.json的配置进行划分。从贴吧小程序来说,更应该以pb页面作为默认页面? 在manifest.json文件中可以配置多个基础项,如H5的自定义模板,但从uniapp官网来看,自定义index.html并不支持,关于H5的proxy,也是在manifest.json中进行配置
《架构及未来》第13-15章读书笔记 JAD:联合架构设计,是一个协同设计的过程,所有的工程人员一起共同设计和开发一些符合架构原则的主要新功能 ARB:架构审查委员会,负责选择和决定每一个新功能或业务领域的架构,在架构设计得到最终签署之前,要由该委员会确定设计符合公司所有的架构原则和业界的最佳实践 技术组织的功能障碍经常导致闭门设计,这些问题特别容易出现在基于功能的组织及存在经验鸿沟的组织,解决这个问题的办法是迫使团队为共同的目标一起努力,这也可能发生在JAD的过程中,只有经历过JAD和ARB,最终确认的架构才能满足多方的需求,避免后期的摩擦 敏捷团队是为了快速开发迭代,通常团队规模较小,独立负责服务和产品的架构设计,自主权至关重要。JAD可以有效确保完成跨部门的设计,跨部门的敏捷团队依靠其本身的组成确保这个结果发生。正是由于敏捷团队人员少的原因,面临的资源优先,所以需要有一些资源共用,如何确保自主的敏捷团队能够标准共享呢,方案一是采用跨越敏捷团队的章节和公会来确定并实施这些指标,方案二是团队很独立而且积极通过各种论坛分享,最后可以考虑使用ARB来验证架构原则的采用和合规情况,通过定期召开会议来回顾最近发布的设计。 自建与外购通常会面临选择,尤其是从技术角度来说有一种天生的偏好,但作者是强烈反对的。从某些方面来说,外购可以直接用到成熟的产品,避免自己重复踩坑,并且可以把自己研发资源抽离出来聚焦到自己的业务上,但外购也可能会影响自己的公司战略,所以在选择自建还是外购的时候需要特别慎重,一般有三种方法来做选择,一是以成本为中心,重点是降低整体成本,二是以战略为中心,对标公司的长期需求,但不考虑总成本,三是合并每种方法的好处,避免每种方法中的问题。
《架构及未来》11-12章读书笔记 11章主要介绍指定预留空间,在server端遇到类似场景的问题会多一些。预留空间是为了做好余量,确保整体服务的稳定性,需要预算、人力规划、功能开发以及可扩展性项目四个方面来预测和规划。 预留空间的步骤首先是确定主要的组件,指定具体组件的负责人来确定组件的时机使用情况和最大能力,确定内在以及商业活动、热点造成的增长情况,比如一些重大活动、热点时,我们通常也会做一些预估和扩容动作。从经验值来说,建议任何组件的最大容量不要超过50%,如果没有以事实为基础的好理由,那就不要偏离该经验法则。 12章主要讨论在架构设计时的一些原则,具体来说包括: 1. N+1 设计:确保开发的系统发生故障时,至少有一个冗余的实例 2. 回滚设计:这在我们设计离线包上线平台和版控机制的时候会重点关注 3. 禁用设计 4. 监控设计:如果监控做得好,不仅能发现服务的死活,还能收集系统相关的数据,评估终端用户的响应时间 5. 设计多活数据中心:主要是为了保证渡过任何在地理上可以隔离的灾难和危机 6. 使用成熟的技术:新技术虽然吸引力更大,但可能也会有更高的故障率,成熟的技术有时候稳定性更佳 7. 异步设计:主要是因为同步系统的故障率会更高 8. 无状态系统 9. 水平扩展非垂直升级 10. 设计至少要有2个步骤的前瞻性:总是在考虑如何进行下一组的水平分割,即使当前还没有需求 11. 非核心购买:不可能什么事情都做的最好,关注真正创造差异化竞争 12. 使用商品化硬件 13. 小构建、小发布、快试错 14. 故障隔离 15. 自动化
《架构即未来》第9-10章读书感悟 危机有不同的阈值,比如同样的故障,在半夜持续30分钟所造成的影响,可能都比不上中午高峰时段持续3分钟带来的影响。每个公司都有自己独特的危机阈值,超过这个阈值的任何事故都应被视为违纪,但在危机发生时,要以同样的方式进行处理,不能因为影响面小就不重视。 在危机发生的时候,要在最短时间内解决问题,而不需要考虑资源的回报和效率。在处理危机时,不需要考虑产品的未来交付问题,因为考虑这些会增加危机的持续时间,第一要务是快速解决问题。 在事后处理过程中,要对一切进行评估,第一次的时候处理会被称为总体事故处理,其首要任务是确定事后处理的任务,其目的不是找出解决所有导致事故的问题,而是要找出所有相关的领域。全方位的分析和解决问题,做好后面的预防工作。好的危机处理,能给公司带来更大的转机。 变更管理,是指对于软件开发过程中的变更操作做好管理记录,其中一个重要原因是为了便于在发生危机时,能快速的通过变更查询来定位问题。如在发生事故时,可能会听到xx说:我修改了xx配置文件,但理论上他不会影响到这个问题,但实际上可能就是因为这个变更引起的。当公司规模较小时,变更管理较为简单,尤其是当公司规模足够大之后,变更管理的流程需要精细化
《架构即未来》第四章读书感悟 领导力定义为影响一个组织或者个人达成某个特定目标的行为的力量。制定愿景激励一个组织,并引导组织向着目标前进。 领导力的组织有多个要素,有些要素是无法改变的,但仍然可以努力来提升可控的因素来当一个好的领导。 作为领导者要有自知之明,可以是来自于领导、peer和下属的360度评价,不要过高的估计自己的能力,大多数人并不像自己认为的那样是个好领导。所以在工作中,也要多和相关同学交流,提取一些反馈和建议,比如与同学的one-one,peer的交流,领导的one-one,来及时调整自己的一些不足 身先士卒非常重要,正所谓己所不欲勿施于人。领导力需要以身作则。比如在关键项目攻坚时期,要体现出身先士卒,一起参与到项目的技术设计、技术攻坚中去,发挥带头作用。所谓火车头、发动机,也是要带动整个团队往前冲,跑在最前面,而不是分给下面同学自己只问进度不解决问题。 能干的领导和经理完成使命,伟大的领导和经理则是通过营造文化氛围,使员工感受到赏识和尊重,诚实而且及时的处理绩效相关的反馈,主要是营造长期发展和关爱环境,为员工的职业和兴趣着想。 领导总是会被放在显微镜下仔细观察,毫无疑问很多细节和问题会被看到,所以更加需要决策英明、以德服人,要重视自己内在的可信性和对组织的影响能力,不能为了一些个人的小利益放弃自己的羽毛 领导需要用人不疑,给员工足够的权力,这样才能激发更大的积极性,不要对员工有过多怀疑,从而让其丧失了主观积极性。 愿景描述要去哪里 使命是引导怎么到达的大方向 目标确保走在正确道路上的目标或者里程碑,最好的目标是通过SMART来制定
《架构即未来》第一、二章读书感悟 人是最重要的,合适的人,有合适的行为,并在合适的时间做了合适的工作,才能创造最大的价值,所以对每个人要根据其特点,结合各种环境因素去做合适的事情,才能发挥更大的作用。 组织管理也很重要,并不是说人越多越好,如果没有合适的组织管理,人员增多后,沟通协调带来的成本可能导致效率的降低,尤其是作者提到各种无效的沟通、太多不相关的会议可能会降低效率。此处感触较深,尤其是开会和开发之间的度,需要做好协调,否则整个团队的研发效率上不去。 领导是做pull相关的工作,即做正确的事,而管理是做push相关的工作,及正确的做事。一个人可能既是领导者又是管理者,这两者的区分也非常重要,也只有区分清楚了,才能发挥更大价值。此处感触较深,不能只是做好别人交代的项目,而是要自己去挖掘更多的有意义的项目,比如用技术手段为业务助力,设定技术方向。 定义清晰的角色,明确各个角色的责任划分是非常重要的,RASCI可以帮助减少责任重叠: R代表负责:指决定要做什么事情的人,而且任务任务的实施 A代表批准:指在决策过程中批准任务并验收结果的人 S代表支持:只为完成任务而提供服务的任何人 C代表咨询:在决策前和关于任务完成情况接受咨询的人 I代表知情:需要通知决策和任务执行结果的人 对应到日常业务中,就是对各个业务模块或者页面的角度,明确owner职责,owner负责整个模块的把控、架构设计
《金字塔原理》第六章读书笔记 1. 所有列入同一组中的思想必须有某种逻辑顺序,还必须将这些思想按照第一、第二、第三的顺序排列,否则就不能确定这些思想确实属于同一过程,也不能保证这些思想是该过程的全部步骤 2. 大脑的归纳分组分析活动有三种:确定前因后果关系,将整体分割为部分;或将部分组成整体;将类似事物按照重要性归为一组 3. 每组思想的个数不要太多,最好不好超过4个或者5个,如果超过5个,那么其中某些思想之间可能缺乏紧密的联系,如果不指明思想之间的逻辑关系,你的部分思想就会变得模糊不清 4. 避免出现因果关系错误的方法是假设自己采取了稳重提到的每一项行动,并想象一下每项行动之后产生的结果 5. 结构顺序就是当你使用示意图、地图、画图或者照片想象某事物时的顺序,你想象的某事物既可以是真实的,也可以是概念性的,既可以是一个物体,也可以是一个过程 6. 逻辑结构建立之后,就可以按照自上而下、自左而右的顺序依次描述各个部分 7. 程度顺序,也称为重要性顺序,是你对一组因为有某种共同特点而被聚集在一起的事物所采用的顺序 8. 检查逻辑顺序是检查某一分组是否恰当的重要手段,当你遇到任何一组归纳思想,需要找出其真实意义时,一定要先快速浏览一遍该组中的所有思想
《金字塔原理》第六章 1. 所有列入同一组中的思想必须有某种逻辑顺序,还必须将这些思想按照第一、第二、第三的顺序排列,否则就不能确定这些思想确实属于同一过程,也不能保证这些思想是该过程的全部步骤 2. 大脑的归纳分组分析活动有三种:确定前因后果关系,将整体分割为部分;或将部分组成整体;将类似事物按照重要性归为一组 3. 每组思想的个数不要太多,最好不好超过4个或者5个,如果超过5个,那么其中某些思想之间可能缺乏紧密的联系,如果不指明思想之间的逻辑关系,你的部分思想就会变得模糊不清 4. 避免出现因果关系错误的方法是假设自己采取了稳重提到的每一项行动,并想象一下每项行动之后产生的结果 5. 结构顺序就是当你使用示意图、地图、画图或者照片想象某事物时的顺序,你想象的某事物既可以是真实的,也可以是概念性的,既可以是一个物体,也可以是一个过程 6. 逻辑结构建立之后,就可以按照自上而下、自左而右的顺序依次描述各个部分 7. 程度顺序,也称为重要性顺序,是你对一组因为有某种共同特点而被聚集在一起的事物所采用的顺序 8. 检查逻辑顺序是检查某一分组是否恰当的重要手段,当你遇到任何一组归纳思想,需要找出其真实意义时,一定要先快速浏览一遍该组中的所有思想
第四章 序言的具体写法 1. 序言是概括已知的信息,并将这些信息与文章将要回答的疑问建立联系,然后作者就可以把全部精力放到解答疑问上 2. 序言总是向读者说明其已知的信息,其意义是:序言说明某种背景,背景中发生了某种冲突,从而引发了某种疑问,而整篇文章的目的就是回答该疑问 3. 为了吸引读者的注意力,必须先想办法使读者轻易的抛弃其他思想,专注于文章的内容,一个非常简单的方法就是利用未讲完的故事所产生的悬念效果 4. 开始引入背景时,应先谈论与文章主题有关,且读者肯定会同意的内容,应当是读者已经认可或者将会认可的内容 5. 冲突就是讲故事时推动情节发展的因素,能够促使读者提出疑问。用描述文章主题的公认事实开始讲故事,冲突就是推动故事情节发展的因素,并且必须引发读者的疑问 6. 序言必须采用背景->冲突->疑问->解决方案的结构,但是各部分的顺序可以有所变化,以创造不同的文章风格 7. 关键句要点不仅要回答文章主题思想引起的受众的新疑问,还要呈现文章的框架结构,因此如果文章篇幅较长,就应该要列出关键句的要点 8. 一般情况下,序言需要2~3段,说明背景和冲突的文字可以长达3~4段,但是不能再长了 9. 序言的常见模式有4种:发出指示式,请求支持式,解释做法式,比较选择式
第四章 序言的写法 1. 序言是概括已知的信息,并将这些信息与文章将要回答的疑问建立联系,然后作者就可以把全部精力放到解答疑问上 2. 序言总是向读者说明其已知的信息,其意义是:序言说明某种背景,背景中发生了某种冲突,从而引发了某种疑问,而整篇文章的目的就是回答该疑问 3. 为了吸引读者的注意力,必须先想办法使读者轻易的抛弃其他思想,专注于文章的内容,一个非常简单的方法就是利用未讲完的故事所产生的悬念效果 4. 开始引入背景时,应先谈论与文章主题有关,且读者肯定会同意的内容,应当是读者已经认可或者将会认可的内容 5. 冲突就是讲故事时推动情节发展的因素,能够促使读者提出疑问。用描述文章主题的公认事实开始讲故事,冲突就是推动故事情节发展的因素,并且必须引发读者的疑问 6. 序言必须采用背景->冲突->疑问->解决方案的结构,但是各部分的顺序可以有所变化,以创造不同的文章风格 7. 关键句要点不仅要回答文章主题思想引起的受众的新疑问,还要呈现文章的框架结构,因此如果文章篇幅较长,就应该要列出关键句的要点 8. 一般情况下,序言需要2~3段,说明背景和冲突的文字可以长达3~4段,但是不能再长了 9. 序言的常见模式有4种:发出指示式,请求支持式,解释做法式,比较选择式
首页 1 2 下一页