为了写一个网站可以掌握那么多的 lib 和 conf,我试着学很快就感觉枯燥无味了,可以称为学习成本比较陡峭。
虽然我知道很多 JAVAER 也只是停留在直接搬砖的水准,但是我仍旧佩服那些基础扎实的 JAVAER,他们学到今天真的很不容易。
反观其他语言,只要有 web 开发经验,上手的心智压力貌似都不大,可惜他们基本都是脚本语言,跨界能力都各有局限。
|  |      1FanError      2017-11-15 18:04:08 +08:00 via iPhone 楼主试下 spring boot | 
|  |      3watzds      2017-11-15 18:06:47 +08:00 via Android 特别是以前上学时,一上来就是 ssh 框架,看得我都怀疑自己能力了。 | 
|      4bramblex      2017-11-15 18:09:26 +08:00 | 
|  |      5owenliang OP @watzds 是,上学时 JAVA 同学好几本砖头。。。开发不一定都要理解,这就是 JAVA 重框架轻原理(是指不需要完全理解就可以做事)的一个现实。 | 
|  |      6xiaoshangmin      2017-11-15 18:10:48 +08:00 via iPhone @watzds 哈哈哈 同感 | 
|  |      7abcbuzhiming      2017-11-15 18:10:49 +08:00  1 脚本语言的最大问题不是跨界能力,python 怎么不能跨界了?脚本语言的最大问题是,类型系统的太随意导致组织大项目的时候很成问题。 @FanError spring boot 仅仅是把一堆 lib 组装起来,让你开箱就能立即跑起来个 http server,跟 node.js 的思路类似。但是你若真想搞出个能用的 web server,你还是要自己配置很多额外的东西的,而且 spring boot 的文件组织和打包方式和常见 jar,war 都不太一样,这里面是有坑的,我非常不推荐没自己搞定过一套 spring 架构配置的人上手就去弄 spring boot | 
|  |      8owenliang OP @bramblex 虽然可以这么说,但是语言归根结底是一个程序员的标志,除非真的所有语言都号称精通,否则总会有一个日常代表性的主要使用语言。 | 
|      9p2pCoder      2017-11-15 18:12:30 +08:00 java 终究还是 一门 面向对象的 语言,面向对象 还是为了解决工程问题方便 | 
|  |      10owenliang OP  1 @abcbuzhiming 其实目前从大家选择 JAVA 的理由来看,重要的还是轮子和工具比较先进为主。 技术生产力的提升是企业的追求,国家的追求。 | 
|      11ming7435      2017-11-15 18:13:17 +08:00 一切为了生活 | 
|  |      12mikicomo      2017-11-15 18:13:51 +08:00 不知道为啥...可能没写过别的语言的 web 项目,感觉 ssm 还好吧...编译原理贼 jb 难 | 
|      13TakWolf      2017-11-15 18:14:18 +08:00 不觉得 Java 学习陡峭 不认为 Java 重框架轻原理,应该懂得东西还是要懂 觉得跟语言没关系,其他语言也有相同的问题 | 
|  |      14owenliang OP @p2pCoder 其实目前绝大多数语言都是 OO,但是 JAVA 是一个各方面都比较均衡的语言,这一点可以拿 PHP,PYTHON 来做比较,就会发现 JAVA 无论是语言本身,还是围绕 JAVA 的工具链都是先进的,整个发展的力量很大。 | 
|      16Wicked      2017-11-15 18:22:19 +08:00 via iPhone  2 C++程序员笑而不语,每一次标准发布都要重新学语法 | 
|  |      17jatesun      2017-11-15 18:25:13 +08:00 楼主说的我都想哭了→_→ | 
|  |      21yanjinbin      2017-11-15 18:44:58 +08:00 你写的那坨  还比不过 Java 基础好的 | 
|      22nicevar      2017-11-15 19:04:15 +08:00 这些东西了解要不了多长时间,以后变动不大,其实 Java 的 lib 还好管理,配置稍微麻烦点,个人觉得 Nodejs 的库更麻烦,你看一些开源项目一大堆人按照 readme 都跑不起来的 | 
|  |      23owenliang OP @nicevar nodejs 除了拿来 react 也就不用了,async await 完全不看好,拿什么和 golang 比。 | 
|      24nicevar      2017-11-15 19:10:09 +08:00 @Wicked C++没你说的那么夸张,新标准出来很长时间才会普及用,很多公司都是四五年之后才用,写 10 年的话也就学两次,一次花的时间也就是几天 | 
|  |      25CtrlSpace      2017-11-15 19:15:35 +08:00  4 1 其它语言没有 Spring 全家桶这么牛逼的开源社区和解决方案。 2 Android 转 Java Web 的路过,发现 Android 开发真的是性价比很高,同样是 Java 语言,但是难度更低,一样拿到高薪,而 Java Web 需要做的学的,远远超过 Android 同时期所需掌握的技术。 3 但因为如此,Java Web 的天花板更高,进可大数据,退可 CRUD ←。← | 
|  |      27sammo      2017-11-15 19:19:27 +08:00 我佩服所有程序员 | 
|  |      28nl101531      2017-11-15 19:20:02 +08:00 via Android 我觉得对于 java 程序员是很容易掌握其他技能 | 
|  |      30shijingshijing      2017-11-15 19:23:07 +08:00 @nl101531 学了 C/C++,其他语言一周上手。 | 
|      31nicevar      2017-11-15 19:24:42 +08:00 @owenliang 其实 Java Web 也有比较好用的地方,比如配置好一套之后,后面的项目基本上就用这个模子,特适合小型公司和个人项目,发布也方便,现在配合 kotlin 连代码都能省了 | 
|  |      32owenliang OP @shijingshijing 有工作驱动应该没问题,我是 c++服务端,后来转做 PHP 增删改查和 golang,c++基本没机会用了,一些扩展场景 c 还能用到。 | 
|  |      34shijingshijing      2017-11-15 19:36:52 +08:00 | 
|      35dobelee      2017-11-15 19:57:14 +08:00 via Android  2 这说明 php 是世界上最好的语言。 | 
|  |      36abbenyyy      2017-11-15 20:02:05 +08:00 @CtrlSpace 大佬能说一下怎么转 Java Web 么,我也想转...现在卡在不知道如何在新的云服务器上面部署 SpringBoot 项目(就是一个新的 linux 怎么跑 SpringBoot 项目)..搜索了一下,很少人讲这个东西。 | 
|      39HYSS      2017-11-15 20:32:21 +08:00 试试 PHP 的 Symfony? | 
|      40yinzhili      2017-11-15 20:34:54 +08:00 @abbenyyy 本身 Spring Boot 应用就可以打包成一个巨大的 jar,只要配置好 JAVA_HOME 不就完事了吗。 | 
|  |      41Actrace      2017-11-15 20:36:26 +08:00 语音编程的我笑着路过。 | 
|  |      42CtrlSpace      2017-11-15 20:42:20 +08:00  1 @abbenyyy 新机器,先搭建环境,git / jdk / maven / mysql / nginx 等。 至于部署,有 jar 部署和 war 部署,搜一下应该都有说明吧。 一般 jar 部署,添加 spring-boot-maven-plugin 这个 maven 插件,执行 mvn clean package,然后 target 文件夹就有个 jar 文件了。最后直接 java -jar xx.jar 运行就行了。(一般写到 shell 文件,方便管理) 不知道你问的是不是这个。。。 转 Java Web 的话,多看书,多看开源的 Java Web 项目吧,模仿他们的套路,以下刚撸的书  ) | 
|      43weics      2017-11-15 20:42:51 +08:00  1 springboot 抽象太高了,有很多暗坑 | 
|      44nicevar      2017-11-15 20:42:59 +08:00 @shijingshijing 小型企业都是 php 是你的个人印象造成的,你如果去看一些侧面统计数据就知道了,采用 java 的小企业并不比 php 少并且在三四线城市逐渐有上升趋势,只能说偏向前端型的用 php 比较多,另外现在入门的 vps 跑个 tomcat 放小型网站没啥问题,只要访问量不是太大的话 | 
|  |      45pq      2017-11-15 20:47:40 +08:00 相对来说,php 入门甚至到中级水准,都要容易得多,小白一周内就可以弄个 demo 出来。。。:D | 
|      47anmaz      2017-11-15 20:57:28 +08:00 via Android 最近在弄.net ,各种恶心,对于我这种半桶水的 java 来说,居然觉得 java 的 lib 库等等是真的好 | 
|      48loveship      2017-11-15 20:59:51 +08:00 鄙视所有动态语言,真 tm 竟然有这种废物语言还有人用? | 
|  |      49Infernalzero      2017-11-15 21:25:29 +08:00  1 Java 这一堆框架虽然很多都不需要了解原理就能拿来干活,但这也只保证了你能干点简单的活,要保证不踩坑以及做更进阶的开发对这些框架的了解是必须的 | 
|      50gmywq0392      2017-11-15 22:25:24 +08:00 via Android  1 写 Java,大多是生计所迫啊。特别是 WEB。 有看过这样的类比,大多数程序员工作时是用购物时的心态写的,阿这个我要,阿这个可以换成这个,阿这个颜色好像更搭,阿这个东东我到底需不需要,阿这样会不会太多了…… 编程的视野是受货架决定的。 这里主要 Java 的超市比较大。比较大。而且实惠又耐用,逛的人自然多了就。 但光会逛也不行呐,bug 们可都在超市门口等着呢。 | 
|  |      51otakustay      2017-11-16 00:10:59 +08:00  1 你那是没见过 npm 动不动装上百个包的 | 
|      52EagleB      2017-11-16 00:20:09 +08:00 via iPhone | 
|  |      53kran      2017-11-16 00:30:49 +08:00 via iPhone 其实本身就没有区别,那些框架提供的解决方案你可以不用嘛。 之前的一个项目,只用 jre 的 HttpServer,没有依赖,配置只是一个 json,如果你选择,完全可以很简单不是吗? | 
|      54jimisun      2017-11-16 04:47:30 +08:00 via Android 想哭了………这个点 | 
|      56notreami      2017-11-16 09:15:52 +08:00 就连 PHP,都有一大堆包和配置,那种靠前排名的 lib 和 conf 少呢? | 
|  |      57ren2881971      2017-11-16 09:18:45 +08:00 怎么每天都有人来黑 java 一下。。哭了 。 | 
|  |      58wuethan      2017-11-16 09:44:04 +08:00 .net 创业市场大,java 给人打工一辈子 | 
|  |      59swim2sun      2017-11-16 09:50:04 +08:00 程序最核心的还是对业务的抽象,就算你只用 servlet/filter 也是完全可以的,Java Web 给的选择是很多的。 一上来就用 ssh 那一套肯定会懵逼,但是脱离这些还是可以写出 web 程序的,既然选择了使用框架,就不要吐槽配置多,这就是“框架”和“库”的区别。“库”是你告诉它要怎么做,“框架”是它告诉你要怎么做 | 
|  |      60Tenma      2017-11-16 09:51:29 +08:00 @ren2881971 朋友,有的黑就说明生命力还强着呢,假如完全没有话题性的语言基本就已经被历史抛弃了……( PS:Android 开发) | 
|      62wangxiaoer      2017-11-16 10:02:19 +08:00 @owenliang 要说重框架轻原理,当初的 asp webform 还是按照桌面交互方式做 web 开发呢,多少半吊子程序员连 get post 都分不清………… java web 那一套搞下来起码我觉得一些基础概念是逼着你掌握的 | 
|  |      64qq292382270      2017-11-16 10:34:47 +08:00 一切为了生存 ... | 
|  |      66misaka19000      2017-11-16 10:35:48 +08:00 哎,感觉 V 站最近这种垃圾帖子越来越多了 | 
|  |      67TZ      2017-11-16 10:40:46 +08:00 直接搬砖的水准是啥意思 | 
|      68pqee      2017-11-16 10:58:57 +08:00 在 Spring Boot 里写了几个网页我已经快吐血身亡了 | 
|  |      69linus3389      2017-11-16 11:17:51 +08:00 node_modules | 
|  |      70quickma      2017-11-16 11:44:16 +08:00 lib 和 conf 也就码农水平啦哈哈哈哈哈 | 
|  |      71ren2881971      2017-11-16 12:18:59 +08:00 @pqee spingboot 那玩意还是适合做 api 服务 | 
|  |      72lfmy      2017-11-16 14:43:35 +08:00 c++码农飘过,个人比较喜欢学习和是使用各种工具和库、框架这种开发方式,并乐此不疲,并不喜欢自己造轮子( ̄▽ ̄)~* | 
|  |      73njwangchuan      2017-11-16 15:03:36 +08:00  1 Java 那是工作中专用语言,一般都用在需求严谨、人员充足、周期较长得项目中。公司给政府和企事业单位做得项目大多属于这种。 招人角度,大学和培训机构都开设 Java 课程,无论是招人还是找工作。北上广,你可以招 nodejs,招 laravel,招 python,招 react。二线以后城市,你想招程序员,基本就只能是 java,iOS / Android 这种 JD。 我本人 java 出身,除了刚毕业那一两年,现在折腾自己得项目,无论 web、移动端、数据采集、API 接口、数据分析,早就没有 java 位置了。等你 java 把框架磨合出来得时间,其他技术栈功能都写完了。。 | 
|      74lzhCoooder      2017-11-16 15:04:22 +08:00 真心佩服 C 程序员,完全没什么 lib 可以用,只能默默撸,学的时候感觉语法超级简单,用起来全是坑,可以称为使用曲线陡峭。 hhh 反方向娱乐一下 | 
|  |      76kylaCpp      2017-11-16 16:49:45 +08:00 一个项目的好坏主要取决于架构的灵活 而不是语言 | 
|  |      77windyboy      2017-11-16 16:51:41 +08:00 java 很多轻量的做法 sparkjava ratpack vert.x 简单干净 spring 依赖确实很多,即便是 spring boot | 
|      78hantsy      2017-11-17 08:07:32 +08:00 要依赖少,回传统 JavaEE 吧,一个应用下来可能几十 K 的一个 war 就行了,尽量全部使用标准,应用服务器自带规范实现,不用把这些标准实现依赖进行打包。 用 Spring Boot 少则 50M,依赖多一点 100M 也不奇怪。 | 
|      79hantsy      2017-11-17 08:09:33 +08:00 像 | 
|      80hantsy      2017-11-17 08:12:29 +08:00 像我 Github 上例子,https://github.com/hantsy/ee8-sandbox Hello World 级别,打包出来都是几 K 到十几 K。 同样 Hello World 级别的用 Spring Boot 的例子,https://github.com/hantsy/spring-reactive-sample,打包出来差不多都在几十 M。 | 
|      81hantsy      2017-11-17 08:34:01 +08:00 实话说,单纯的比较这些包的大小,依赖,对开发没任何意义。 Java 开源生态环境是其他语言不能相比的,不管解决哪个方面的问题,都有找到一系列开源方案。 配置方面不管 Spring Boot 还是其他(本来 Java EE 8 中有配置相关标准,后来取消了,但 Eclipse Microprofile 规范加入相关标准,Apache Deltaspike 项目也提供了灵活的配置方案),在 Java 中配置是相当灵活,不管是编译时配置( Maven Profile ),还是运行时配置( Spring @Profile )基本都是可以考虑到 SDLC (开发,集成 /测试,生产环境),可以很简单应用到不同环境。 其他语言(我也有过 PHP,NodeJS 经验)似乎没这么方便。PHP PSR 在模仿 JSR 机制开始定制了一系列规范。 Java 的规范,套路( Design Pattern )等,看起来都是低效,笨拙,。。但它非常适用于团队开发大型应用,非常适合长期维护的项目。 曾经与一个几年经验的 .net 程序员接触,他的印象,怎么一个简单的功能一到 Java 为什么要那么多第三依赖库。我不明白的是,他作为一个 .net 程序员,现在 .net 也那么开放,他天天用到的只有 VS。工作中,很多的第三方库可以简化操作,更实现一些通用功能。比如,.net 也有一些优秀 jwt/oauth 认证开源项目,奇怪的他对于第三库一概不知,一概不用。 | 
|  |      83misaka20      2017-11-19 11:38:56 +08:00 via iPhone test | 
|      85johnniang      2017-11-29 09:23:44 +08:00 via Android Java 的设计模式很重要,如果能完全掌握二十多种设计模式,也就能写出很优雅的代码,复用性很强的代码,我想这就是我们程序员所要追求的吧,不管是什么语言 | 
|  |      86abcbuzhiming      2017-12-01 10:25:02 +08:00  1 @johnniang 这句话我非常强烈的反对,我恰恰认为 java 在大多数时候,要避免谈 xx 设计模式,因为绝大部分人的 java 项目根本就不大,开始就谈什么复用,很容易陷入过度设计的泥坑里,几年前 java 被批判就是因为这个,后来诞生了一大批轻量级框架都在降低设计的复杂度。而且。我真心不觉得基于 Simula67 学派的面向对象体系谈的上优雅,基于这种思想搞出来的,稍微大一点的项目,没有 uml 类图做指导,压根就看不懂他们写的东西。代码这东西,可阅读性应放在第一位,因为代码是一次编写,多次阅读的 |