V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eightqueen
V2EX  ›  程序员

Web 前端的技术栈是怎样的?

  •  
  •   eightqueen · 2015-09-26 15:09:45 +08:00 · 6674 次点击
    这是一个创建于 3343 天前的主题,其中的信息可能已经有所发展或是发生改变。

    鄙人做 java 的,前端文盲,自学前端上网一查,海量的框架直接傻眼了,根本理不清学习的头绪。我想搞清楚前端入门需要学习哪些必须的框架,它们都是干嘛的?
    java 的技术栈是这样的:
    1.maven :项目周期管理、 jar 包管理、打包
    2.tomcat : servlet 容器
    3.spring : java 开发核心框架,功能全面,有 mvc 、 ioc 、 aop 、 jdbc 等功能,基本上学会这个框架绝大部分开发任务都可以轻松搞定。
    你看 java 简单吧,学会 3 门技术就可以入门了。

    42 条回复    2015-10-02 03:30:30 +08:00
    ChiangDi
        1
    ChiangDi  
       2015-09-26 15:12:11 +08:00   ❤️ 2
    前端: HTML CSS JavaScript 也是学会 3 门技术就可以入门了。
    eightqueen
        2
    eightqueen  
    OP
       2015-09-26 15:15:30 +08:00
    @ChiangDi 别逗
    viko16
        3
    viko16  
       2015-09-26 15:18:08 +08:00   ❤️ 2
    YuJianrong
        4
    YuJianrong  
       2015-09-26 15:23:13 +08:00 via iPad
    @eightqueen 我觉得他说得没错啊,学会这三个就可以入门了啊。大部分任务都能轻松搞定了。
    至于打包啦组件化啦 MVVM 啦什么的都只是看项目适当使用而已。
    eightqueen
        5
    eightqueen  
    OP
       2015-09-26 15:36:22 +08:00
    @YuJianrong 那 java 开发学会 java 难道也就行了?这不是逗是什么?不会 spring 、 maven 、 tomcat 谁敢要你。
    eightqueen
        6
    eightqueen  
    OP
       2015-09-26 15:37:37 +08:00
    @viko16 谢谢,终于有个认真回答问题的了。
    FFLY
        7
    FFLY  
       2015-09-26 15:45:26 +08:00   ❤️ 1
    @eightqueen 我觉得你对入门的理解太偏激了,这问题和谁敢要你更是没任何关系,更何况楼主问的本身就是如何入门。
    chloerei
        8
    chloerei  
       2015-09-26 15:45:42 +08:00   ❤️ 1
    TakanashiAzusa
        9
    TakanashiAzusa  
       2015-09-26 15:49:48 +08:00   ❤️ 2
    java 的 ssh 框架用了十来年了吧?前端的框架一年一变都算慢了的。。你进来就问学什么框架,人家怎么回答。。
    eightqueen
        10
    eightqueen  
    OP
       2015-09-26 16:13:42 +08:00
    @TakanashiAzusa 可以不回答
    eightqueen
        11
    eightqueen  
    OP
       2015-09-26 16:14:52 +08:00
    @FFLY 在我看来不会 spring 、 tomcat 、 maven , java 开发不算入门,你根本无法完成任何稍具规模的项目。
    joyee
        12
    joyee  
       2015-09-26 16:25:04 +08:00   ❤️ 1
    其实说 HTML , CSS 和 JavaScript 就够了的不太准确,起码还要入门 DOM , BOM 和 CSSOM 不然你学的 JavaScript 派不上用场。

    但是对应楼主的举例,只能说,前端社区还没有 spring 、 maven 之类具备压倒性优势的库 /框架 /工具,曾经有 jQuery 但是随着浏览器 API 的发展已经慢慢不再必要了,基本上是各种领域的轮子一两年就改朝换代一次,只能说每个领域(模块化、组件化、工作流 .etc )都保持关注慢慢就能区分轮子优劣和异同了,然而很少有能学一个吃三年的,大概最终极的还是你自己造一个……
    vangoghs
        13
    vangoghs  
       2015-09-26 16:35:32 +08:00
    看来是人人对「入门」的定义不同,才有分歧
    Vamwere
        14
    Vamwere  
       2015-09-26 17:01:35 +08:00
    然后你看了下框架代码,纳闷道这些都是什么小儿科的东西,怎么能吹逼吹成这样
    foomorrow
        15
    foomorrow  
       2015-09-26 17:13:03 +08:00 via Android
    先学 javascript 的基本语法特性,闭包,原型继承,函数式等等,然后看看 DOM API ,了解浏览器 DOM 的机制,然后学学 http 协议相关
    css 方面了解盒子模型, BFC 、 IFC 等等基本原理,这样算是入门了,并且任何新框架新概念都可以快速上手
    jaguar
        16
    jaguar  
       2015-09-26 17:15:43 +08:00 via Android
    既然是做 Java 的,为啥不会 JavaScript ?
    bdbai
        18
    bdbai  
       2015-09-26 17:20:21 +08:00 via iPhone
    1 楼的回答没有错,你确实应该从这三大件开始。要深入也离不开这三样。
    PS :这节点不是"问与答",更不是知乎。大伙儿没有长篇大论给你回答的义务。
    Bardon
        19
    Bardon  
       2015-09-26 17:57:07 +08:00
    楼主入门的定义,就是要能开发大项目。

    前端是必须要日积月累的,零散的点太多太多太多。框架几年一变,而不是如其他工种一样,吃透一项就可以开始吃老本

    有些人说前端是体力活,如果这句话成立的话,那么所有语言的工作都是体力活,细分到底,也就是那几样逻辑判断,太容易上手了。
    YuJianrong
        20
    YuJianrong  
       2015-09-26 17:59:39 +08:00
    @eightqueen
    1. 和 java 不同,你如果真能把 HTML,CSS,JS 『学会』的话(这当然包括 DOM/BOM 等等),我敢保证已经有很多公司要你了
    2. 你说的那不是学 java 而是学怎么用 java 开发 Web 应用吧? java 也可以做很多东西人家写桌面应用写安卓应用为什么要学你的三件套啦?
    3. 和 2 同样前端也是如此,各种场景不同需要的技术也不同,所以我才告诉你『打包啦组件化啦 MVVM 啦什么的都只是看项目适当使用而已』,但一切基础都是 HTML,CSS,JS , 会了学什么都很快,不会告诉你什么都没用。

    把 java 限制在 spring 、 maven 、 tomcat 里的你才是逗的吧~~~
    kikyous
        21
    kikyous  
       2015-09-26 19:07:56 +08:00 via iPad
    楼主好屌啊
    djyde
        22
    djyde  
       2015-09-26 19:21:31 +08:00   ❤️ 1
    看完评论,我觉得楼主想要的答案应该是:

    0. $ npm install

    1. require();
    zonghua
        23
    zonghua  
       2015-09-26 19:47:26 +08:00
    你这样只是用熟了工具,还有一大堆实际问题等着你解决。
    luoway
        24
    luoway  
       2015-09-26 21:27:29 +08:00
    非要个三件套的话,
    jQuery+Bootstrap+zencode 吧,基本上学会这三个,绝大部分开发任务都可以轻松搞定。。。(误
    iwege
        25
    iwege  
       2015-09-26 22:22:14 +08:00
    jQuery bootstrap 。

    不打包,直接 script 加载。
    joyee
        26
    joyee  
       2015-09-26 23:12:07 +08:00
    其实还有一个问题是, LZ 提到的那些,放在前端都属于较大型的应用才会有比较明显的需求。仅仅是入门级的简单的页面(都不能算 web app )的话,就算只有原生的 HTML / CSS / JavaScript / DOM 之类也是够用的。当应用规模上去了之后,才会有使用 MV*、管理依赖之类的迫切需求,而这些东西其实大部分在其他领域早就有,只不过在 web 应用的规模上去了开始有相应需求了以后,在这个领域重新实现了一遍而已,毕竟说到底前端不过就是另一种 GUI 编程而已,做出来的东西也终究只是一种软件
    Imivan
        27
    Imivan  
       2015-09-27 12:33:04 +08:00
    @jaguar 雷锋和雷峰塔有关系?
    steveway
        28
    steveway  
       2015-09-27 13:33:43 +08:00   ❤️ 2
    说个题外话
    我觉得楼主的提问态度很差
    holulu
        29
    holulu  
       2015-09-27 14:22:50 +08:00
    你说三门技术一个 play framework 就搞定了。
    uRGB
        30
    uRGB  
       2015-09-27 14:43:30 +08:00
    @steveway +1 ,现在的小伙子都是这样有个性的。“你可以不回答,爱回回不回滚。”
    uRGB
        31
    uRGB  
       2015-09-27 14:50:01 +08:00
    @TakanashiAzusa 谁叫你回答了,爱回回不回滚。
    chenshunjin
        32
    chenshunjin  
       2015-09-27 15:58:38 +08:00 via iPhone
    HTML 、 CSS 、 JavaScript 是必学的,至于只写 HTML 、 CSS 个人觉得那个不叫前端,也算不上程序猿。

    至于框架,可以尝试都接触一下,看个人兴趣和项目需要选学。

    新框架的话,可以看看但千万不要跟潮流,因为等你学的差不多了,也许这个框架已经“过时”了,😂
    zsx
        33
    zsx  
       2015-09-27 17:47:11 +08:00
    XianZaiZhuCe
        34
    XianZaiZhuCe  
       2015-09-28 09:09:56 +08:00
    必须学的有, HTML 、 CSS 、 JavaScript 。
    完。
    baohao
        35
    baohao  
       2015-09-28 09:56:52 +08:00
    楼主一看就是只知道基础,不会花时间去打牢基础的人。呵呵
    baohao
        36
    baohao  
       2015-09-28 09:57:22 +08:00
    @baohao 错了。只知道框架。
    eightqueen
        37
    eightqueen  
    OP
       2015-09-28 10:58:59 +08:00
    @steveway 我就是楼主,你觉得我的提问态度差的话,完全可以不理,来这么一句没有意义,毕竟我不是孙子,不是你可以随便批评的。
    nikubenki
        38
    nikubenki  
       2015-09-28 12:04:21 +08:00 via iPhone
    我也挺想了解这方面的,这里确实不是个提问的好地方,如果 lz 在其他地方提问了的话,还希望 append 一个链接。
    litpen
        39
    litpen  
       2015-09-28 21:49:46 +08:00
    前端面对的客户端环境千奇百怪,错综复杂只能根据需求定框架
    steveway
        40
    steveway  
       2015-09-28 23:03:12 +08:00 via Android
    @eightqueen 我是觉得这样对社区氛围不好
    你的一番回答让我觉得帮你解决问题的人都很不值得。
    eightqueen
        41
    eightqueen  
    OP
       2015-09-29 15:38:39 +08:00
    @steveway 已经 40 个回复了,你看看有几个回答是有意义的,有谁在认真回答问题。我估计你应该是看到了我对 TakanashiAzusa 的回复:可以不回答。然后觉得我的态度有问题吧。
    legendlee
        42
    legendlee  
       2015-10-02 03:30:30 +08:00 via Android   ❤️ 1
    我来说说吧,我们就以现在这个页面为例,说说前端怎么入门。

    1 ,首先要学会 html 和 dom ,就是用 html 把这个页面上的内容堆出来,先别管排版。这里要注意的是你的 html 要符合常识和业界惯例。要搞清楚行内元素和块元素等等。

    2 , css ,把你堆出的页面排版到和这个页面我差不多,包括元素位置和样式,比如圆角,阴影,颜色等。

    3 , js ,要熟练使用 js ,要比 java 更熟练。我见过很多不怎么懂 java 的 java 程序员。可能 java 的工具比较好,这样可以,但是你要是这样搞 js ,绝对死的难看。
    在熟练掌握 js 语法的基础上,你要改写你刚才写出的页面,把每条回帖用 json 表示出来,然后用 js 渲染出来。就跟 jsp 差不多,模板引擎随便选一个就好,直接拼字符串也可以。
    然后再用 js 复制出当前页面的所有交互效果,注意和 V2EX 的代码对比学习。

    4 ,有了以上基础,你已经有了基本技能,接下来就是练习了。用上面的三剑写两个 demo ,一个简单些的,比如计算器,一个复杂些的,比如俄罗斯方块。

    5 , 4 完成后基本上你已经对前端比较有感觉了。这时候学习一下 backbone 。

    6 ,你已经完全入门了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5386 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:28 · PVG 15:28 · LAX 23:28 · JFK 02:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.