Comments (601)
赞,想近距离聆听云龙的教导吗?前排占位招人。 阿里UC移动事业群, 广州
from blog.
非常不错,哈哈,也来一个占位招人,在线旅游行业-淘在路上 放一个校招的宣传 http://tao.117go.com/hiring (手机打开),社招或内推直接发邮件dengwei#117go.com (#替换为@),期待您的到来!
from blog.
很多人觉得模块化开发的工程意义是复用,我不太认可这种看法,在我看来,模块化开发的最大价值应该是分治,是分治,分治!(重说三)。
这句极其赞同
from blog.
瓶神写的真好。。瓶神我要给你生一堆猴子
from blog.
透徹!留名!跪請前端高手加盟。 http://initiumlab.com/
from blog.
大赞!
from blog.
不知道是不是我理解错了?为什么这里面也会有各种无意思的赞,mark,如果真是这么佩服,可以给直接联系博主商量捐款事宜!
from blog.
资源表跟阿里的 KISSY 有些相似。不过目前又慢慢转向线下打包。
from blog.
赞,非常好啊
from blog.
赞楼主,写的很棒
from blog.
一口气看完了。看的好爽。
from blog.
受益匪浅!太棒了!
from blog.
大赞!雲龍V5
from blog.
赞
from blog.
拜读下
from blog.
看到民工评价民工
from blog.
应该没有对系统进行表的分治吧,或者没有模板引擎的控制权,实现后端模板中的资源管理
from blog.
顶,写得真好!
from blog.
赞!值得反复读。
from blog.
雲龍贊一個
from blog.
mark
from blog.
厉害
厉害
厉害
from blog.
怒赞
from blog.
组件化的目录,components下面把ui组件,css和js模块都放在同一目录会不会有点乱呀
from blog.
我来翻译一下,大概就是说你把你页面上的 link, script 替换成一些后端的接口,比如
index.php
<html>
...
<?php
F::load('a.js');
F::load('b.css');
?>
...
</html>
- 以 PHP 为例
假设这个静态资源表叫 map.json
map.json
{
"a.js": {
"uri" : "/static/a.js",
"type": "js"
},
"b.css": {
"uri": "/static/b.css",
"type: "css"
}
}
那么当页面执行模板 index.php
时,就会执行 F::load
函数加载对应的资源,假设 F::load
函数实现如下。
<?php
class F {
static public $static = array(
"js" => array(),
"css" => array()
);
static public function load($id) {
if (!is_string($id)) {
return;
}
$_map = json_decode(file_get_contents(__DIR__ . '/map.json'), true);
if (isset($_map[$id])) {
$res = $_map[$id];
array_push(self::$static[$res['type']], $res['uri']);
} else {
trigger_error('not found resource ' . $id, E_USER_NOTICE);
}
return;
}
}
这样在页面跑完以后就会得到页面的所有静态资源。
当页面抛出给浏览器的时候,可以把收集到的 F::$static
里面的静态资源内嵌到页面中。内嵌的时候可以遵循 js 在 body 后,css 在 head 前的优化规则,或者其他任何地方。
为了简单期间,上面未考虑有依赖的情况。以上只是有后端模板的情况下,如果是纯前端有其他更好的方法。暂时就等 @fouber 慢慢道来吧。
from blog.
早前一篇就看了半个多小时,这次又是半个小时,大招威力不凡
学习学习
from blog.
工程方案其实也可以小而美!只不过它的小而美不是指代码量,而是指“规则”。找到问题的根源,用最少最简单明了的规则制定出最容易遵守最容易理解的开发规范或工具,以提升开发效率和工程质量,这同样是小而美的典范!
不愿意使用一套工具、框架、方法论,就是因为规则太多,跟团队人员习惯的规则差异过大。
from blog.
厉害
厉害
厉害
from blog.
@plusice 不会乱啊,每个都是一个组件,组件有自己的使命。比如展现的组件,其入口就是那个模板,并不会在某个地方单独调用其内的 js 或者 css。那么你的乱指的是?
from blog.
赞
from blog.
good!
from blog.
谢谢分享
from blog.
mark
from blog.
mark
from blog.
👍
from blog.
赞!
from blog.
火钳
from blog.
💯
from blog.
非常赞!
from blog.
云龙兄 可以着手准备准备fis3
from blog.
太棒了
from blog.
好棒
from blog.
👍
from blog.
Orz
from blog.
赞!
from blog.
非常好!
from blog.
Zan!
from blog.
留名
from blog.
赞
from blog.
膜拜大神,初级前端细细品读
from blog.
mark
from blog.
顶礼膜拜
from blog.
mark
from blog.
来学习了
from blog.
mark
from blog.
赞!
from blog.
MARK
from blog.
MARK~
from blog.
受益匪浅
from blog.
👍
from blog.
分治,分治,分治!(重说三)。
from blog.
mark
from blog.
总结的很赞
from blog.
棒棒哒
from blog.
赞分治的**,细思极恐
from blog.
👍
from blog.
@zhoufanqq 因为都还停留在 jquery 时代
from blog.
超级赞!
from blog.
@atian25 是UC吗?
from blog.
分而治之~~~!
from blog.
后续 工具篇 就应该 FIS 上场了吧。
from blog.
这是进入架构师的领域……
from blog.
赞!!分治对项目的维护和迭代有着至关重要的影响~~
from blog.
@think2011 是的.
@plusice 是强迫症犯了了吧, 关于目录这个问题, 我也经常纠结, 目前 components
目录下是:
- compoments
- widgets
- utils
- pages
可以适当的分类, 但不要太多层级
from blog.
@xiangshouding 我是指或许可以在components下新建两个子目录放js和css模块而已啦,哈
from blog.
不建议区分js模块和css模块, 按组件的方式去区分即可, 一个组件 = js + css + tpl , 可以缺失任何一个.
from blog.
你好,我这边是coding.net 觉得写的挺好,正好我们的用户很多都是前端开发者,不知道可否申请在我们的公众号和blog转载?
from blog.
@atian25 嗯嗯,我是指ajax这些js模块,不是组件的js和css。就跟你说的目录一样。
from blog.
火钳刘明
from blog.
没这样做过,有一个疑问,像这种用来开发可能很方便。但是,生产环境如何部署这么多零碎的文件呢
from blog.
前端太需要这样的文章的了,赞!
from blog.
方向
from blog.
赞!目前正在用fis3做尝试,慢慢吸收瓶神的干货,坐等后续文章。
from blog.
期待后面的系列文章
from blog.
布道者
from blog.
文章中的画图的工具是什么,求分享。
from blog.
深受启发,非常感谢分享
from blog.
@genffy balsamiq mockups
https://balsamiq.com/
@nazhenhuiyi 源码规范和部署规范是不一样的, 通过FIS
这样的工具去连接和构建, 可以去看博主的其他几篇文章
from blog.
写的非常棒!
把整站的组件和模块都放在components目录里,会不会造成目录爆炸呢
from blog.
@klozelove 标明出处,欢迎转载
from blog.
@Coffcer 分治还有个手段就是 子系统拆分
,博主有提及,后续的文章会介绍这块。
from blog.
@nazhenhuiyi 构建相关的问题我下一篇文章会介绍,其实我之前写过的文章也多多少少有说过
from blog.
@fouber 好的,多谢。
from blog.
感谢分享 (≧▽≦)/
from blog.
受到很大启发,谢谢分享~
from blog.
最近一直在做组件化,大神的话,让我对整个项目的技术选型和目前团队做的事有了一个更为深刻的认识。
from blog.
全面,有深度有高度,好文章。一个系列的。
from blog.
赞,已分享到极客头条:http://geek.csdn.net/news/detail/38202
from blog.
目前才勉强达到第三阶段,任重而道远!
from blog.
文章很赞,作为前端工程化的非常有力的理论基础。
个人以为,前端最复杂的部分,莫过于资源的管理了,包括资源的获取、加载(常规加载和按需加载)、依赖分析、缓存控制(主要是资源编译输出),而这里所说的资源并不是单单指js,凡是webapp所(直接或间接)依赖的都叫资源,如图片、css、fonts或者中间产物如scss、less、模板等。
po主帖子里将browserify、webpack和grunt之类归类到一起,其实是不合理的,因为前者是打包工具后者是构建工具,功能不同,放到一起容易误导读者。browserify功能单一不做讨论,这里侧重说下webpack。
资源依赖管理,目前FIS(以及基于FIS的工具)、Webpack都做到了,而且原理都差不多,都是工具内部提供资源引用的方法,内部分析资源依赖以及内部处理资源的加载(包括按需加载)。
解决了资源依赖管理,剩下的比如自动化部署、发布什么的,相对容易,而且这些工作其他职位的同学或者运维系统(如git hook)都能做,而前端资源依赖管理只能由前端自己去解决。
我这里刚好有一篇关于使用webpack搭建前端工程工具的帖子,有兴趣的同学可以进来探讨下:基于webpack搭建前端工程解决方案探索
from blog.
Related Issues (15)
- 浅谈前端集成解决方案 HOT 102
- 关于组件化开发的问题 HOT 10
- 前端开发体系建设日记 HOT 189
- 能列举个前端工程师技能套装吗 HOT 10
- 前端工程与性能优化 HOT 81
- 前端工程与模块化框架 HOT 95
- 模块化打包的大潮中,如何处理静态页面? HOT 10
- 一个程序员的成长之路 HOT 70
- 先部署页面再部署资源,不是会导致找不到资源吗? HOT 1
- 私人博客,请勿私自发起 Issue HOT 11
- 资源定位中md5戳的计算过程 HOT 86
- 大公司里怎样开发和部署前端代码? HOT 179
- 如何进行前端自动化测试? HOT 20
- 欢迎一起探讨各自在前端开发中遇到的工程问题 HOT 204
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blog.