我理解中的“大前端”/“大无线”

本文内容较长,大概需要15分钟时间阅读。 内容包含五部分:前言,NodeJS职能变化,ReactNative的大规模应用,专门的架构组职能,总结。主要是介绍我所在团队最近的一些变化和思考。 前言 最近,我所在的团队做了一些结构调整,其实我一直想讲讲这次调整,希望能够带给同行一些思考,但因调整后很多事情还未走上正轨,一直拖延着,现在终于有时间把一些想法写下来记录成文字。 今天早晨,还看到一篇文章,讲“大前端”,文中展望了近年来“前端”影响的领域,从美工时代刀耕火种的时代到现在延伸到 NodeJS »

芋头 芋头 访问数:1090

如何做一个RN容器-iOS

1.如何引入RN 如何依赖 我们在用react-native init的时候,他会生成一个iOS的工程,进去后我们发现,他依赖的库都是以子工程的方式引入的,但是如果需要引入我们目前的工程,用pod管理依赖,这样的方式显然是不能接受的。在npm的管理包里面,我们会发现有一个react.podspec,所以许多人建议直接用podspec的path去引入,例如这样: pod 'React', :path => '../node_modules/react-native', :subspecs => »

大风车Android客户端的架构演进

前言 以下内容不牵涉具体代码实现,也不包含插件化相关知识。 没有银弹,只有根据当前的与可预见的业务情景不断调整的架构方案。 阅读正文将花费您大约30分钟。 本文会随时间持续改动。 大风车从第一版发布开始到现在已经走过了两个多年头,陆续上线发布了二十多个版本,从一开始的提供web容器包装h5的简陋版本,发展到现在由九个专职原生开发同学及数位前端同学支持的12w行(统计数据来自SonarQube)代码的规模。架构的可用性半衰期随着业务体量的增长而缩短,那么如何支撑现有业务的维护及后续的业务开发是对我们的一大挑战,而本人作为经历了从零开始的开发人员,下面带大家回顾一下这两年来的大风车Android客户端的架构变化。 组件化与模块化 首先来明确两个概念:模块(module)和组件(component)。 什么是组件? 组件是语言层面的划分,侧重于功能重用。 »

DosLin 访问数:375

Vue.js 2.0 迁移指南

前言 自vue 2.0 发布之后,就有将项目迁移到 2.0 的计划。对于一个不算小的项目,这样的工作量是巨大的,往往伴随着很多坑要踩。老实说,迁移 2.0 将导致项目的改动不少于 250 处。下面我会把迁移带来的一些问题及注意事项列出来,以防走弯路。 注意 迁移之前,你需要思考以下几个问题,再决定是否迁移。 如果项目过大, »

chuangker chuangker 访问数:2478

ReactNative 学习笔记 —— TextInput

ReactNative 文档中API介绍主要分两块(COMPONENTS,APIS)。COMPONENTS 使用 JSX 语法渲染原生视图,APIS 使用函数调用调取原生特性。文档中带有Android或iOS后缀的API为特定平台独有,常用的 API 官方为我们做了跨平台实现 (View,ScrollView,Text,TextInput,Image,TouchableOpacity)。需要注意的一点是:某些基础 API 在不同平台的样式表现并非完全一致。 TextInput 在 »

创创 访问数:1024

种子爬取心得

简介 今天分享的主题是“使用nodeJs爬取磁力链接”,本文以探讨严肃的学术研究为目的。本文共分几块内容: 明确需求 程序结构 细节补完 程序优化 避免被反爬虫 一、明确需求 知己知彼百战百胜,想要爬种子必须要明确:希望得到什么样的资源?以及去什么地方寻找资源? 希望得到什么样的资源 资源的番号通常可以代表一个口味系列,比方说笔者喜欢轻口味的,并且无码的片子,不喜欢看凌虐情节,那么应该找SMD系列的资源,SMD意为super model,其番号通常是SMD-xx。 那么也有人会也喜欢轻口味系列的, »

子云兄 子云兄 访问数:2958

Git 自动回滚 和 应用发布的二三事

昨天在朋友圈讲了一个笑话:刚写了一个自动回滚的脚本,写完后运行了一下,成功把脚本自己回滚没了。。。很多人可能关注点在笑话本身,而不是在这个“自动回滚”的脚本到底是个什么东东,今天就介绍下,顺便讲讲与其关联的一些发布应用过程中的概念。本文适用于任何 JS 语言开发的前后端项目。 本文主题结构: [1] Git Tag 与 应用版本号 [2] 自动回滚 [3] 题外话:发布脚本 [1] Git »

芋头 芋头 访问数:2881

Nodejs 线上服务稳定性保障体系

本文会有条理的将我们团队在稳定性保障方面做的一些事情与大家分享,文中着重强调“线上”服务的保障,尽量不会涉及开发过程中的话题,改天会就开发过程的质量保障另外介绍。另外,我们在此方面也并非完全成熟,大家可以作为参考,但也许并非最佳实践,本文我会尽量讲我们的解决问题的思路,而不是最终如何执行。 说到线上保障,我觉得主要是以下几个问题需要解决(从前到后): 开发过程中,如何保障代码质量? 发布前,如何及早提前发现潜在问题? 发布过程中,如何保障上线过程? 发布后,如何快速处理回滚? 线上故障之后,如何最短时间发现问题? 发现问题后, »

芋头 芋头 访问数:3262

ReactNative学习笔记

写了一段时间的ReactNative,打算把自己的一些心得体会写下来,可以作为初学者的入门参考。 之前是在学React,四五月份的时候芋头让我研究研究Weex和ReactNative,Weex那会儿还不成熟,就先接触了ReactNative,感觉ReactNative好牛逼,它只做一件事情: 把iOS和Android的原生API和组件以React组件的方式暴露给外界。目前每两周一次的版本迭代几乎都在解决暴露的过程中所产生的一些问题。 开发思路的转变 接触ReactNative之前,我对客户端的了解仅限于WebView,原来客户端有那么多的View,有最常用的View,有用来滚动的ScrollView,还有用来渲染列表的ListView,还有渲染动画的Animated.View。我们前端看页面是一个一个DOM元素,客户端看页面是一个一个视图,WebView只是客户端众多View中的一个。 从前端走近ReactNative最大的转变可能就是对视图的理解,开发HTML网页的时候,设计稿有多长我们就一直往下写, »

创创 访问数:1506

Node.js 定时任务状态监控思路与实现

在实际生产环境中,避免不了有很多后台运行的任务和定时任务,对任务状态的监控与及时告警可以尽量减少程序出错时对用户造成的影响。针对常见的两种任务类型:定时任务、守护进程内批处理任务,利用 Node.js child_process 实现了任务状态的监控、重启与邮件告警。 思路 现在的互联网已经不是单机作战的时代了,分布式部署是非常常见的方式,一个项目中的任务可能运行在多台服务器上,我们的监控平台要做到重启某个任务就需要知道任务运行的具体服务器,针对这一个问题我们需要获取到任务与服务器关系的确切信息,所以每台运行任务的服务器需要在启动任务时向任务状态管理平台注册自己的信息。 任务状态的维护依赖于任务运行服务器的心跳上报,每个任务设置一个超时时间,在任务启动时向任务状态管理平台发送开始运行信号,在任务运行结束后向管理平台发送运行完成信号。任务管理平台根据任务设置的超时时间,在超时后仍然没有接收到任务完成信号则判定任务失败, »

手把手教你写一个全功能全拼输入法

时间不多还要陪老婆睡觉,我准备直入主题,本文会手把手教你写一个智能的全拼汉语输入法。 其实是语言无关的,我也不打算把具体的代码放出来,我之前用ios实现过一个,效果很棒,可惜ios写涉及数据结构的代码真的是蛋疼,后来放弃维护了。 好的,一步一步手把手来,不涉及什么算法,也不难理解。 第一部分 拼音分解 第一步,用户输入一串拼音,假设是这样的: woshiyimingshuaibichengxuyuan (预期结果:我是一名帅比程序员) 首先,当然是要把拼音分解开,这一步其实有一些深入优化的点,不过就普通的拼音分解来说,其实一个正则足够了。 »

芋头 芋头 访问数:1739

第二期 杭州 Node Party 总结

PS:关于往期和下期活动的各种信息,可以关注 github 上的 repo :GitHub - Hangzhou-Node-Party/slides: Slides for each party. 上个月的 9 月 25 日 下午 2 点到 5 点,第二届杭州 Node »

芋头 芋头 访问数:1209

【杭州】Node Party 第二期,9月25日下午,大搜车不见不散

很可惜的告诉大家,本次活动报名已满,报名放出几个小时就报满了,只能说大家热情太高,下次报名我们也会尝试收费,以此筛选真正热衷 Node.js 开发的开发者。感兴趣的同学可以加群时刻关注下次活动信息。 另外,如果您想跟大家分享自己的话题,直接联系我,二维码在文章最后。 关于杭州 Node Party 杭州 Node Party 是由大搜车(Souche Inc.)发起的一个面向 Node.js »

芋头 芋头 访问数:1035

第一届搜车 Node Party 总结及PPT

本周末(8月7日)下午2点到5点,第一届搜车Node Party成功举办。这是我们第一次举办对外分享,难免经验上有些不足,没有专业的主持人,也没有完善的时间控制,最后三个分享占用了所有时间没有预留自由交流的环节。本次活动报名130人,审核后到场大概60人左右,可见杭州工程师对Nodejs的关注度还是很高的。希望活动能够持续办下去,下次希望有更多兄弟公司的同学站出来分享他们的Nodejs应用。 关于分享这件事,其实真的需要勇气。短时间内,很难把自己做过的事情很有条理的讲出来,思路也很难做到完美,更难保证自己讲的东西不是大家已经很熟悉的或者不屑一顾的。所以有时候不要想太多,勇敢的站出去,你讲的东西总会对人有帮助,这就够了。 这次主要分享了三个话题, »

芋头 芋头 访问数:3198

构建一个类jq的函数库

jqfree 虽然团队里用上了vue,但是某些情况下可能仍然需要操作DOM,或者是需要一些诸如变量类型判断、时间解析函数、url解析函数、浮点数四舍五入小数位和获取随机位数字符串的辅助函数。而本篇就是教你怎么构建这样一个山寨版的库,只要400行代码,你就能体验写一个库函数畅快的感觉! jqfree core var $ = function(selector, context) { return new $.fn.init(selector, context); }; $.fn = $.prototype; $.fn.init »