技术周刊 - 第 17 期
- 作者:
- phobal
- 发布时间:
【前端】
1. MVVM与redux的概念类比
太阳下没有新事,许多东西是旧酒装新瓶,司徒正美大大如是说。在他这篇专栏文章中,类比了 MVVM中的 getter,setter 和Redux的 reducer,getState等几种概念,详细阐述了它们各自背后的实现原理,非常值得一读。
详情:https://zhuanlan.zhihu.com/p/38025611
2. JavaScript 是如何工作的:内存管理 + 处理常见的 4 种内存泄漏
JavaScrip 在对象被创建时分配内存,并在对象不再使用时“自动”释放内存,这个过程被称为垃圾回收。这种看似“自动”释放资源的特性是导致混乱的来源,它给了 JavaScript(和其他高级语言)开发者们一种错觉,他们可以选择不去关心内存管理。这是一种错误的观念。
即使使用高级语言,开发者也应该对内存管理有一些理解(至少关于基本的内存管理)。有时,自动内存管理存在的问题(比如垃圾回收器的错误或内存限制等)要求开发者需要理解内存管理,才能处理的更合适(或找到代价最少的替代方案)。
详情:https://blog.sessionstack.com/how-javascript-works-memory-management-how-to-handle-4-common-memory-leaks-3f28b94cfbec 翻译版链接:https://zhuanlan.zhihu.com/p/37863088
3. 领域驱动设计
来源: 语雀
随着我们解决的场景越来越专业化和复杂化,大型SPA应用的流行,前端承担的职责越来越多。代码的质量和系统的完整性越来越难把握。很容易导致迭代着迭代着发现代码改不动了。最后只能新起炉灶,重新开发。归根到底在于复杂度的失控,本文会尝试分析其中的问题以及从前端如何应用领域模型开发的角度给出一些建议
详情: https://yuque.com/mayiprototeam/gfyt69/oq14ia
4. Sonar 面向移动开发工程师的桌面调试平台
来源: github trending
Facebook 开源的 Sonar 是调试 iOS 和 Android 应用程序的桌面平台,通过桌面界面就能可视化、检查和控制你的应用程序,它还提供了一系列有用的工具,包括日志查看、交互式布局检查器和网络检查器
详情: https://github.com/facebook/Sonar?utm_source=gold_browser_extension
5. Node 创始人否定 Node
Nodejs 的创始人 Ryan Dahl 一共做过两次关于 JS 的公开演讲。 一次是2009年宣布 Node 项目诞生,另一次是九年后的昨天,演讲题目是《Node 的设计失误》。
这个演讲的内容非常火爆,基本上把 Node 全部否定了,认为 libuv 和 npm(包括 package.json)都是设计错误,怪不得 JS 圈里面没人作声。他觉得,Node 已经无药可救了,所以动手写了一个新项目 deno(这个名字是 node 的拆分,表示 node 重组)。
详情:http://tinyclouds.org/jsconf2018.pdf
6. Vue Native:使用Vue.js构建原生移动应用程序
来源:jsweekly
React 拥有 React Native,现在如果你是 Vue.js 开发者,你可以试试这个。 与 React Native 不同,这不是来自同一团队的正式项目,本质上它是 React Native 本身的 Vue 封装。
7. 你可能用错了 async/await
ES7 引入的 async/await 是 JavaScript 异步编程的一个重大改进,提供了在不阻塞主线程的情况下使用同步代码异步访问资源的能力。在本文中,我们将从不同的角度探索 async/await,并演示如何正确有效地使用它们。
详情:https://hackernoon.com/javascript-async-await-the-good-part-pitfalls-and-how-to-use-9b759ca21cda
8. Sucrase:一个新的 JavaScript 转码器,号称比 Babel 快20倍
Sucrase 是 Babel 的另一种选择,允许您更快的开发构建。Sucrase 并没有将大量的 JS 特性编译成 ES5,而是假定您将目标定位于一个现代 JS 运行时,并且专注于编译非标准语言扩展: JSX,TypeScript 或 Flow。Sucrase 的解析器是从 Babel 的解析器中抽出来的,并将其细化为专注于解决 Babel 的一小部分。 如果它正合您意,希望 Sucrase 可以给您带来更好的开发体验。
详情: https://github.com/alangpierce/sucrase
【后端】
1. 设计模式集锦
软件中的设计模式是针对常见问题的通用可重用解决方案。该项目包括各种语言和框架(如 C++、Go、Java、JavaScript、PHP、Python、Ruby 等)的设计模式、通用设计模式、云设计模式、微服务和分布式系统、物联网、大数据、数据库、移动开发和前端开发中的设计模式等。
详情:https://github.com/DovAmir/awesome-design-patterns
2. 用 Python 分析 4W 场球赛,2018 世界杯冠军竟是...
比赛已经开始,我们不妨用 Python 来对参赛队伍的实力情况进行分析,并大胆的预测下本届世界杯的夺冠热门球队吧!通过数据分析,可以发现很多有趣的结果,比如: 找出哪些队伍是首次进入世界杯的黑马队伍 ;找出 2018 年 32 强中之前已经进入过世界杯,但在世界杯上没有赢得过一场比赛的队伍。
3. Deepin 操作系统面临重重困境,创始人兼 CTO 已离职
作为国内做的最好的 Linux 发行版,源自 Debian sid 的 Deepin 目前正面临重重困境,新版本不断延期,开发人员离职,bug 长期得不到修复,和 Debian/Ubuntu 的兼容性问题也面临越来越严重的挑战。 如今,雪上加霜的事情发生了,其联合创始人王勇离职,Deepin 的前途更是坎坷。
详情:https://www.oschina.net/news/97099/deeepin-cto-leaved-his-job
4. TensorFlow 基础入门
这篇文章的内容来自课程 [Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization] 的编程练习。courseraT上的编程练习设计得非常贴心,一步步引导学员完成练习,对于编程基础薄弱的同学尤为友好。
详情:https://mp.weixin.qq.com/s/9Jg_FIejfRt6_DNcpYXVyw
5. Go 程序的持续分析
通过使用 Stackdriver Profiler,可以看到谁在使用 CPU 和内存,可以持续地监控我们的生产服务以争用和阻止配置文件,并且可以生成分析和报告,并轻松地告诉我们可以进行哪些有重要影响的优化。
详情:https://linux.cn/article-9713-1.html
6. Python 中 logging 模块的基本用法
在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程。梳理一下整个演讲的过程,其实其核心就是介绍了 logging 模块的使用方法和一些配置。
详情:https://cuiqingcai.com/6080.html
【其他】
1. Android 性能优化来龙去脉总结
一款 app 除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样才能更好地提高用户体验。文章作者针对 Android 性能优化进行了总结,依据故事的发展路线,将其分为了5个部分,分别是:常见的性能问题;产生性能问题的一些可能原因;解决性能问题的套路;代码建议及潜在性能问题排查项。
详情:http://wetest.qq.com/lab/view/390.html
2. 从世界杯竞猜骗局谈二分法
四年一度的足球盛典——世界杯已在本月14号响起号角。这是一场球迷的狂欢,同时也是骗子的节日。作者聊到一个经典骗局,并用二分法思想解释了其中原理。