新手问题 怎样与别人的前端代码合并?

chairy11 · 2015年06月07日 · 最后由 Los 回复于 2015年06月14日 · 4901 次阅读

问题

是这样的,我写了其它所有前端页面,用了 scss 和 coffeescript。 然后一位同事写了首页,没什么数据,目前是静态页面。与我其它页面也没有共享框架,我就在 controller 中用了render layout: false。 我自己用了 bootstrap 框架。她的没有,但用了些其它插件,而且 css 代码中也有一些会覆盖我的设置。 目前为了省事,我就直接把这个 html 复制到过来,然后把她的 css,js,images 全部放到 public 文件夹里。 效果是正常显示。但总觉得这种方法不太合适。 你们平时都是怎么处理的?

因为我之前都习惯自己前端后端代码都一个人写,都用的 bootstrap,然后用 scss 覆盖达到个性化。加入别人的代码,没有经验,感觉怪怪的……

整合下,丢 assets 下面,rails 自带的挺好用。 居然都是女生!!!

#1 楼 @flowerwrong 但她的也没有用到我的 css 和 js,而且写的 style 与我的其它页面风格也不太一致,我别的页面都是响应式的,她是定宽的。 好像完全彼此独立的感觉。 有必要放 assets 下合并么?那样我需要改的地方就比较多……

#2 楼 @chairy11 oh, no. 你们公司规范呢?

css 转 sass http://css2sass.herokuapp.com/ js 转 coffee http://js2.coffee/

你帮她手动转吧

public 没有问题。

别问别人,坐下来和同事一起吃点心,喝咖啡,仔细探讨。

扔到 assets 里,给她的文件打包到一个目录下,html 页面 link 同步一下。。。assets 目录下 scss,css 都是可以识别的,后缀对就可以,反正发布的时候倒是要预处理的。

最难是 CSS 规则冲突的情况... 图省事就用 iframe 隔离...

放 public 好了

#8 楼 @luikore 是啊,就是烦这个,到时各种互相覆盖的,很多细节得改来改去的

#9 楼 @edmond #5 楼 @rei 请问啊,我把图片放在 public 里,为什么加载得特别特别慢?

什么叫做 public,iframe。技术上有没有(副作)用不说,观念都不端正。难道只有你写的才是代码,别人写的全是添乱?

首先坐下来:

  1. team 有没有样式规范,有就全部遵照,或者完善。没有就你们两写一个,给 team 审核。
  2. 文件规范定下来,什么是全局的,全局的放什么文件,分组件或分页面的放什么文件。避免重复劳动,也避免冲突。
  3. PR 互相 review。

#12 楼 @billy 一个做行政的姑娘,说想学前端,老板就让她写了主页,各种问题。各种切图。与我其它页面风格也完全不一样。我觉得我迟早会重写的。 我有点洁癖,现在项目也只有我一个人在做,前端后端本来都是我在写。 没什么规范。

分开 layout + 文件夹维护,比如

- layouts
  |- responsive.html.erb
  |- fixed.html.erb
<!-- app/views/layouts/reponsive.html.erb -->
<%= javascript_include_tag "responsive" >
<%= stylesheet_link_tag "responsive" >

<!-- app/views/layouts/fixed.html.erb -->
<%= javascript_include_tag "fixed" >
<%= stylesheet_link_tag "fixed" >
- assets
  |- stylesheets
    |- responsive
      |- file1.css.scss
      |- file2.css.scss
    |- fixed
      |- file1.css.less
      |- file2.css.less
    |- reponsive.css
    |- fixed.css
  |- javascript
    |- responsive
      |- file1.js.coffee
      |- file2.js.coffee
    |- fixed
      |- file1.js
      |- file2.js
    |- responsive.js
    |- fixed.js
/* app/assets/stylesheets/responsive.css */
require_tree ./reponsive

当然了,以上只是解决现有的问题,最好还是制定团队规范。

#12 楼 @billy 另一个 Ruby 同事都说,老板这么轻率,出了各种问题要让我来给人擦屁股,多不好……

他说他以前都是自己写纯后端的,前端人家各种 HTML,CSS,JS 都配好,然后给他一个图,告诉他,哪部分去哪个文件夹找代码,然后把一些动态代码替换进去就行了。 如果我们前端是纯粹搞好了,我直接替换动态的内容,也行啊…… 但现在是各种混乱……

我们专业的前端还没到岗。

#15 楼 @chairy11 没有代码走查?

#16 楼 @martin91 恩,目前我感觉各种不规范各种乱……没有代码审查……

#15 楼 @chairy11 1、第一步,你费事整合下 2、然后你们在同一个 repo 下共同开发 3、大家都遵循你们公司的规范 4、找个第三者做代码审查,不规范,打回重写

#14 楼 @martin91 我有我一套自己的规范。 如果有个专业的前端写的与我的没有冲突,大家好好配合,或是他已经写好,一整个顺畅,我也很高兴。

可是临时来个……我不想为这改来改去的……事情多着呢……

其实她就单纯把一个页面变成几个静态图片。连图中的按钮都没有弄出来……我实在无力去弄……我从来不会切图……

#18 楼 @flowerwrong 她不会一直参与这项目,她就是个行政,我也不知道怎么插进来的这一笔……说我听说我那天下午没时间,就让她弄了……我我我……

#18 楼 @flowerwrong 我挺不舒服的…… 唉……

老板的风格是想让每个人什么都学……觉得一切都没问题…… 让干 IOS 的去学 python,最近几个月都在现学怎么处理数据库,那哥们都崩溃了…… 让干 Android 开发的去搞微信接口,结果那哥们听说也想走了……

这让行政来写前端,我也是醉了……

老板对技术的观念,就像普通人都认为学计算机的一定会修电脑一样……

我觉得代码就像写文章,真不是随便来一句就算的…… 写一篇流畅完整严谨有结构的文章,真是别随便给我插入两句……

在我眼里,高手程序员与低手程序员差很远,但老板不懂技术,觉得只要说是做过技术的就行…… 我面试过一个哥们,那哥们说做前端,说在 XX 团购网站干过,我一问,说是公司有团购页面模板,有些团购产品内容填到页面后显示可能有点问题,他就调整一点点参数什么……以我现有的知识,根本不理解这样的工作……看他的作品,完全是学生作品,就是抄一个 80 年代风格网站(要抄也抄个好看点的啊!),一整个图片,切成一小块一小块,有几个链接,合成一个页面……他十分自豪……我无语凝噎…… 反正老板笑呵呵说好好好,差点要了……我否了……

幸好,后来老板听了我劝告,传说要来一个多年经验的高手……

@chairy11 看来还真是添乱。该批评的是老板。

public 建个文件夹专门放静态网页,html/assets 都放里面。

#23 楼 @rei 因为有 root_path 嘛,所以我还是把她的页面 html 放到我的pages/home.html.erb下了,然后 controller 里设置了render layout: false 另外我就是直接在 public 下设置了一个 css,一个 images,一个 js 三个文件夹了。 public 里本来自动生成一个 assets 文件夹了啊,里面是放部署在生产环境(我现在虽然是测试服务器,但我是用cap production deploy来部署的)后自动编译过的文件的吧……

我在想,现在加载慢,是不是因为很多图片直接放在 public 里,没经过什么压缩处理? 也不对啊,我其它上传图片也是直接放在 public 里的啊……难道是 nginx 配置没有开启什么压缩传输功能?

#24 楼 @martin91 老板性格倒是个老好人,简直就 nice 到没原则了…… 我还想进来好好学学严谨的开发流程呢……结果…… 要是老这样,我还真想走呢……

#25 楼 @chairy11 静态页面为什么要 render?

加载慢你得具体分析,打开浏览器调试器看哪里慢。

#27 楼 @rei 可这是暂时的嘛…… 而且,要是我把主页放 public 里面,我 route 怎么写? 我习惯是写root 'pages#home' 那换成静态放在 public 里我还真不会写哩……

#29 楼 @chairy11

<a href="/pages/somepage.html"></a>
31 楼 已删除

#30 楼 @rei 不是这意思啊……不是不知道 html 怎么写,是不知道《config/routes.rb》怎么写……

我 html 里面都用的 helper,<%= link_to '首页', root_path %> 在 route 里面写,不是方便别的地方引用root_path嘛?

如果没有定义root xxxx,会报错吧?

#31 楼 @rei 我是挺生气的,其实…… 其它页面我都响应式的,最重要的主页他来个切图式的…… 不过只是暂时吧,等他今天向集团老总展示完再说…… 主要是周五下午 UI 才出图,然后那天中午正好我去苹果店修电脑了,结果回来晚了,他们就那刚来的行政不是说在学前端嘛,让她写……

他们也没告诉过我说周五下班前要搞定这个项目的一切,我那天上午还弄别的项目来着,也没听说要弄主页,没听说老板急着要演示用……那天晚上加班到凌晨…… 不给我截止日期,我也是醉了……

#32 楼 @chairy11 root 一定要设置,但是 root_path 就是 '/',等价 <%= link_to '首页', '/' %>,如果是静态页面的话放在 public/index.html

#34 楼 @rei 额,还是没明白啊,写root 'xxxx',那 xxx 我填写啥?

我平时所有静态页面也还是用 routes 设置的,比如:

get 'about_us' => 'pages#about_us'               # 关于我们
 get 'contact_us' => 'pages#contact_us'           # 联系我们

静态文件还在 controller 里转一手,会变慢吗?还是有其它影响?

#35 楼 @chairy11 留着现在的不动,但是有 public/index.html 在,外部访问进不了这个 action。

#35 楼 @chairy11 会变慢,你看日志 render 用了多少 ms 就慢了多少。但是你说的页面慢我估计是别的问题,因为 10 ms 通常感觉不出差别。看 浏览器调试 分析。

#37 楼 @rei 哦……

#36 楼 @rei 你意思是《routes.rb》里面还是写root 'pages#home',占着位置,但因为 nginx 在 public 里面已经找到了 index.html 这个页面,所以它就不会再去 routes.rb 中查了,所以就不会用到 pages_controller,不会 render《views/pages/home.html.erb》这个文件,所以就不会有任何问题?

#39 楼 @flowerwrong 哈哈,我还整天想着创业呢,要不哪天就再创业去了…… 如果打工还是继续呆着吧,听同事说如果能进集团本部,一个月能 x 万年终奖 6 个月……听听就流口水……好吧,还很遥远……

#40 楼 @chairy11 这种大饼别太相信... 而且就算真的,纳税得交一半...

#40 楼 @chairy11 年薪接近 100 万了!!!

我就说这么热闹,原来是女孩子 😂

妹子都兴称呼别人“哥们”?

#11 楼 @chairy11 css 和 javasc 文件都压缩合并了吗?具体见这个文章 前端架构分享 https://ruby-china.org/topics/25802

#41 楼 @luikore 希望有机会能这么被扣税呢

#45 楼 @edmond 我自己的在 app/assets 里,rails 会默认压缩合并的吧。

@chairy11 你们那还招人吗?这么好鼓动人学习的老板怎能不爱?

汗,楼主是 12 年加进来的老会员了,之前 HR?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号