OSC 第 88 期高手问答 —— 移动 Web 开发

叶秀兰 发布于 2015/08/24 14:12
阅读 7K+
收藏 29

OSCHINA 本期高手问答( 8月24日- 8月31日)我们请来了《JavaScript设计模式与开发实践》 的作者曾探以及他所在的团队@AlloyTeam 为大家解答关于移动 Web 开发方面的问题。

曾探,2007 年毕业于吉林大学软件学院。就职于国内知名前端团队腾讯 AlloyTeam,高级工程师。曾参与 Web QQ、QQ 群、Q+ 开发者网站、微云、QQ 兴趣部落等大型前端项目的开发。有过 Java、Python 和 JavaScript 的开发经验,业余作品有 HTML5 版街头霸王等。

腾讯 AlloyTeam 来自腾讯 SNG (社交网络事业群),是业界知名的前端团队,负责过 webqq、qq 群、q+、兴趣部落等大型项目。也出产了 CodeTankAlloyGameEngineAlloyImageAlloyDesignerJX 等优秀开源项目,目前团队主要负责手机 QQ 相关的移动 Web 开发工作,在移动 Web 开发方面积累了丰富的经验。

《JavaScript设计模式与开发实践》 是根据 JavaScript 语言的特性专门针对 JavaScript 语言全面总结的设计模式。全书共分为三个部分,第一部分讲解了 JavaScript 语言面向对象和函数式编程的知识及其在设计模式方面的作用;第二部分通过一步步完善的代码示例,由浅入深地讲解了 16 个设计模式;第三部分讲述了面向对象的设计原则及其在设计模式中的体现,以及一些常见的面向对象编程技巧和日常开发中的代码重构。

书中所有示例均来自作者长期的开发实践,与实际开发密切相关,适合 Web 前端开发人员阅读。

为了鼓励踊跃提问,@AlloyTeam 会在问答结束后从提问者中抽取 5 名幸运会员赠予《JavaScript设计模式与开发实践》一书。

样章试读:http://www.oschina.net/doc/17791

购买链接:http://item.jd.com/11686375.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就移动 Web 开发方面问题向@AlloyTeam 提问,请直接回帖提问。

加载中
1
图灵教育
图灵教育

活动已经结束,恭喜@@流云诸葛 @小鸽子咕噜@zhaowweny @leoxu @caotian  在高手问答环节中获得《JavaScript设计模式与开发实践》1本,请把邮寄地址私信给@图灵教育。再次感谢各位积极参与活动。邮寄信息格式:姓名+电话+地址+邮编号码。

2
TAT_johnny
TAT_johnny

引用来自“小鸽子咕噜”的评论

@AlloyTeam :移动web开发兼容性如何考虑
兼容性这个话题有点大,目前我们主要精力集中在保证ios6、android4.0的可用性上。对于如何在项目中进行决策,我有几点建议:
1. 使用H5能力前查询 http://www.caniuse.com,了解平台支持情况。
2. 在业务中使用特性检测,采集目标用户的设备支持情况,根据支持比例、降级方案来决策API的使用。
3. 对于移动设备的细碎兼容知识,可以关注AlloyTeam的Mas项目(https://github.com/AlloyTeam/Mars),有专门的版块来收集兼容性问题,也欢迎社区朋友一起共享移动web开发的兼容性方案。
南漂一卒
南漂一卒
AlloyTeam 在 GitHub 上的前端知识点收集十分接地气!本人一年来非常受用![83]
小鸽子咕噜
小鸽子咕噜
嗯,iphone还好,android碎片化比较严重
1
1024
1024
@AlloyTeam :能否介绍一些移动Web开发中可提高性能的优化点,要是能结合你们团队的实际例子就更好啦。
TAT_johnny
TAT_johnny
移动端确实有一些简单有效的优化点: 1. 充分利用缓存。利用静态资源的长cache(避免服务器端的304),使用localstorage存储首屏加速相关资源(js、ajax数据、dom片段等)。 2. 服务端渲染页面。首屏内容使用服务器端渲染,可以大幅提升首屏速度。 3. 各项压缩。保证资源本身的压缩(图片、js、css),保证开启HTTP的gzip压缩。
0
brothong
brothong
@AlloyTeam :移动web开发需要掌握哪些知识?常用的软件有哪些?框架有哪些?
馨馨
java,javascript.javascript是语言,要写js框架的话需要用到jQuery。如果web前端设计的话就是要学习html和css这些了。
0
flygogo
flygogo
@AlloyTeam :看到书中如何用javascript来实现类似面向对象的方式实现。是否可以这么认为,一个大型的,多人参与的项目。面向对象里的包管理以及代码的组织方式,依然是项目成功的必要条件。
A
AlloyTeam
面向对象是达成目的的一种手段,可以更好地组织代码,简化逻辑,便于维护。不过就js这种弱类型动态语言来说,面向对象并不是js的全部,在大型项目中面向对象可以帮上很大的忙,但是也不建议太过迷信面向对象,最好尽量使用一种团队成员都易于接受的方式。而且,项目成功的必要条件是有一群靠谱的队友,如果暂时没有,可以考虑加入AlloyTeam。 :)
0
小鸽子咕噜
小鸽子咕噜
@AlloyTeam :移动web开发兼容性如何考虑
yaung
yaung
很好
TAT_heyli
TAT_heyli
移动端开发上总体上是不错的,但要注意Android系统,各式各样的机型,各种各样的问题。不过只要不要搞太炫酷吊炸天的效果,基本是没有问题的。 By heyli From AlloyTeam
0
adolphlwq
adolphlwq
@AlloyTeam :您好~
目前Web领域开发呈现多样化技术栈:新兴的MEAN、传统的像LAMP、java web、python等,
1. 结合您的开发经历和认识,您觉得这些技术栈的适用场景分别是什么呢?比如MEAN适合开发什么应用,java web适合什么业务场景。

2. MEAN会蚕食java web的份额吗?java web的出路在哪里?

谢谢!


TAT_johnny
TAT_johnny
各框架方案没有绝对的优劣,而是否适用于手上的项目,也要看开发团队是否能够驾驭好框架的使用,所以没有一项技术框架是被真正淘汰的,也不太会有蚕食份额的情况。 我建议多关注开源社区的发展,比如MEAN技术组合中的Express、Angular都是可替换的(Koa、React),所以在技术多样化的今天,更应该从项目需要的架构本身出发,选择合适的框架。
0
kimown
kimown
@AlloyTeam :您好,我想请问下,H5已经在移动端大放光彩,但是也没有独占鳌头,同期还有类似PhoneGap、React Native等符合快速开发、跨平台的技术,但同样的它们之间的优缺点也很明显。我想问下您认为未来移动web开发的趋势是什么?哪一样技术有可能符合市场需要,迅速发展,希望可以得到您的见解。
TAT_Azrael
TAT_Azrael
我认为每一种技术既然创造出来了, 那他一定是适用于某一个领域的, 因此不可能存在只学习一种就能完成所有任务的情况, 最好的方式就是所有都了解一点, 然后根据自己的业务特性, 选一种走下去, 如果不合适, 更换就好了, 百战才能成神
0
无名人士
无名人士

@AlloyTeam : 你好,有一些问题跟你请教:

1. 关于移动web中的调试,你们团队有没有对外开放的一些解决方法,前段时间做了几个h5页面,在微信和ios下,遇到一些奇怪的问题,虽然最后找到方法解决了,但是解决过程非常费劲低效,调试过程非常辛苦,一直未找到一个能在pc端进行移动web调试的方案;

2. 关于移动web中的缓存,能否给一些比较合理的建议,或者你们团队目前的策略是怎样的,有时候会遇到一些问题,不管刷新多少次,加随机数都不能显示最新的效果

3. 移动web是采用完全的前后端分离,还是结合服务端的动态页面比较合理,如果采用完全地前后端分离,每个页面用来请求服务端数据的请求数控制在多大范围比较合理

4. 移动web有哪些性能优化的思路

5. pc web还会考虑IE8及以下的IE浏览器吗,我发现BAT大部分网站还是做了部分兼容的,但是里面也用了很多新特性,CSS3和html5都有使用,难道为了兼容,会写多套代码吗?UI布局可能还好,但是像动画,圆角,阴影这种,除了css不同,html结构区别也很大,这些问题,怎么做才把项目做好阿

6. JS的兼容性问题,EC5在新版浏览器中都支持了,那么使用了EC5新特性写的代码,如何兼容较低版本浏览器,难道API里都要判断是否支持,不支持的话则采用自定义的实现方式吗,比如Object.keys

7. 关于深入学习前端开发,请您随便谈谈自己的一些想法,谢谢!

8. 感谢Mas项目,对于接下来的工作有指导作用。

violinux666
violinux666
第三个问题哪位专家愿意回答下...
无名人士
无名人士
回复 @南漂一卒 : 好的,下次试试
南漂一卒
南漂一卒
UC 和 X5 WebKit 内核版本号一样,大多数问题都一致~
无名人士
无名人士
回复 @南漂一卒 : 主要是微信用的x5内核,uc浏览器调试不一定能解决问题,ios就更不用说了
南漂一卒
南漂一卒
微信 + iOS —— 奇葩 Bug + 没调试工具……[41](安卓上好歹有个 UC 浏览器开发者版)
0
愤怒的小兔
愤怒的小兔

@AlloyTeam :JS的兼容性我想问问前端这一块是否可以开始使用ES6了呢?前端使用ES6有什么好的解决方案么?

当耐特
当耐特
现在完全可以放心大胆使用ES6了,而且开发或者部署时候可以直接转成向下兼容的js代码。详情:https://github.com/addyosmani/es6-tools https://github.com/sindresorhus/gulp-es6-transpiler
返回顶部
顶部