今天在知乎看到一个很有趣的问题:问题链接
第一反应是在想题主使用框架是为了解决什么痛点?
由于题主也没说他们学校项目主要内容是啥。
于是突然在想,大家在开发(任意语言)的时候,会因为什么去选择使用一种技术 /框架。
就这几年,刷各种论坛讨论区都能看到类似问题“ XXX 公司 /项目不使用 ZZZ 技术,我要走 /离职吗?”,却从不提为什么要使用这种技术。
我就有时候感觉这些人使用框架 /技术,并不是为了解决什么问题,而是为了“炫”“优雅”。
至于使用了这款技术后开发是方便了还是没改变甚至变困难了,他们好像都不考虑。
![]() | 1 duan602728596 2019-07-21 18:33:35 +08:00 via iPhone 为了不加班,不给别人、不给自己擦屁股,不让别人、自己擦自己的屁股 |
![]() | 2 opengps 2019-07-21 18:51:57 +08:00 via Android 大多人都是为了直接上手不用新学习技术 |
3 luckyqiang 2019-07-21 18:53:43 +08:00 via iPhone 做 java 必须得用 spring 啊,莫得选择 |
4 luozic 2019-07-21 19:03:40 +08:00 via iPhone 只要吹新技术是银弹的都是垃圾,可以准备开始走人了。 |
5 Hstar 2019-07-21 19:19:52 +08:00 每一个新框架的出现都是为了解决某个痛点的,不然作者闲着没事就为了刷 KPI 吗。 你用惯了某个框架会有“不识黄山真面目,只缘身在此山中”的感觉。 可以尝试不用某个东西然后完成一个需求试试。 |
6 way2create 2019-07-21 19:23:41 +08:00 优雅 哈,框架就是工具,代码可读性好,用起来方便就行了,具体选啥看情况了,技术的话,个人认为每项技术都有各自适合的场景咯,看场景跟自己会什么了 |
![]() | 7 laimikan OP @duan602728596 你的痛点是稳定性,我也是 23333 @opengps 并不是说学不学新技术的问题,而是在项目中使用一款技术,这款技术总得解决当前项目某些问题吧。但是感觉现在有些人引入技术,不是为了解决问题,只是单纯想用。 @luckyqiang 不是很了解 java,不过这个 spring 是不是能解决当前写原生 java 时遇到的问题。我觉得这个最重要。 |
![]() | 8 iPhoneXI 2019-07-21 19:35:45 +08:00 via Android 公司看需求, 个人看简历或者工资 |
9 orm 2019-07-21 19:36:43 +08:00 via iPhone java: grails play vert.x |
![]() | 10 laimikan OP @luozic 赞成,技术就只是技术,得对症下药 @way2create 不是说我拉,就是看现在有些人,好像要一款技术撸一辈子的样子,而不是根据实际情况来选择使用还是不使用 @way2create 就是这样,根据实际情况选择才是真啊 |
11 taogen 2019-07-21 19:38:57 +08:00 流行的框架,一般相关领域中最好的设计模式和最佳实践。底层语言(汇编,C )也能实现的功能,为什么大家都用( Python, Java, Golang ),不过是人生苦短。使用什么技术都可以,但有些技术自己学学就行,用来实际生产没必要。 |
![]() | 12 arden 2019-07-21 19:43:52 +08:00 @luckyqiang java 里的选择多了,不只只只有一个 spring |
![]() | 13 KamenReborn 2019-07-21 19:53:56 +08:00 当你写 JDBC 写到吐的时候,你就知道不用一个 ORM 框架这活是没法干了 当你写 servlet 写到吐的时候,你就知道为什么要使用 springmvc 了 当你写 html,css,js 写到吐的时候,甚至写到吐了还没办法实现需要的前端效果的时候,你就知道为什么需要前端框架了 总之,感觉自己快吐了就是时候用框架了 |
![]() | 14 KamenReborn 2019-07-21 20:00:56 +08:00 @arden #12 我还真不知道写 java 除了 spring 还能用其他框架 |
![]() | 15 wu67 2019-07-21 20:31:01 +08:00 首要是省事吧. 像我在前公司的时候, 就只用 js 框架, ui 框架就没用, 因为根本难以还原设计稿, 还原出来了基本吧框架的大部分样式覆盖了. 选择实际上就是衡量得失. 当然也有爱好问题, 像 react 和 vue 我就会选 vue , 因为我讨厌 jsx |
![]() | 16 Buges 2019-07-21 20:40:07 +08:00 via Android 使用某些技术 /高级编程语言 /框架 /库等轮子的目的是局部化问题,分而治之。诸如 OSI 分层模型,这种方法帮助编写了整体复杂度远超人类能掌控的系统,也是现代计算机体系的基石。也因而,要处理这些内容,也必须用这样的思想。轮子的意义,尽在于此。 |
![]() | 17 laimikan OP @KamenReborn 感觉很奇怪,我感觉你明明和我想的一样:“引入技术是为了解决原本难以解决或者简化我们自己的开发过程,而不是为了使用而使用。”,又感觉你在咄咄逼人 |
![]() | 18 easylee 2019-07-21 21:24:05 +08:00 为了找工作多一个技术栈啊 |
19 jorneyr 2019-07-21 21:25:19 +08:00 规范 |
![]() | 20 Takamine 2019-07-21 21:33:27 +08:00 规范统一,在可能的情况下,不要重复造轮子,并且尽量不引入未经足够检验的组件到项目中。 |
![]() | 21 autogen 2019-07-21 21:43:24 +08:00 为了快 |
![]() | 22 xiaoshenke 2019-07-21 21:44:33 +08:00 说的好像有的选是的,公司用的架构都是为了可替代性选择最常见的技术架构的,你以为你有的选? |
![]() | 23 gimp 2019-07-21 22:03:14 +08:00 前端开发日益复杂化,团队都用 Antd Pro 框架来写,可以方便抽调人手来协助项目 最终程序都用 Docker 来部署,交付给测试 /工程时就很方便 |
![]() | 24 jaynos 2019-07-21 22:14:29 +08:00 效率而且稳定吧, 很多东西你只要用就可以了, 框架已经做好了并且已经测试过了. 公事上肯定是要求效率的开发完, 不能出一些神神鬼鬼的问题, 而且也方便公司其他人帮忙维护. 不然你做一套我做一套, 最后叫人帮忙写个接口写个界面还得先看 2 天代码? |
![]() | 25 Yourshell 2019-07-21 22:30:47 +08:00 因为菜 |
![]() | 26 version 2019-07-21 22:40:15 +08:00 如果项目本来就很简单.几个页面.几个功能.也就没必要用 vue 这种不好维护带编译的框架.一套代码写完了.可能系统要跑上几年不用维护那种.或者改改页面代码.刷新就可以了.而不用繁琐的编译时间..不一定非要用高大上的框架..用原生 js 也能写得很好..github 就是很好的例子 |
![]() | 27 version 2019-07-21 22:41:20 +08:00 ![]() @KamenReborn 很多呢.例如 rpc 或者一些微服务就不需要 spring 容器管理.. 还有阿里也有蛮多用 play 框架 |
![]() | 28 janxin 2019-07-21 22:42:54 +08:00 为了快啊... DRY 嘛~ |
![]() | 29 Baymaxbowen 2019-07-21 22:46:31 +08:00 @KamenReborn #13 深有体会,框架主要是为了提高生产力 |
30 zartouch 2019-07-21 23:14:02 +08:00 一般来说团队使用或者选择技术框架优先级大概是 1. 一定是可以解决当前场景问题的,比如我们做低延迟系统,一般来说依赖注入会用 Spring,但是框架本身大量 background threads 和产生的大量的对象严重影响 gc 进而影响延迟,所以不能用。团队有时候使用小众技术或者造轮子只可能是因为目前比较大众的方案不适合当前问题,绝不能是因为它看起来很酷。。 2. 团队比较熟悉的,大多人可能都接触过,或者和大家熟悉的比较类似,上手快的。 3. 生产效率高好维护的, 比如用 c++或者 Python 来复杂的写业务系统明显不是个好的的选择。 |
31 yanguangs 2019-07-21 23:41:16 +08:00 |
![]() | 32 lincanbin 2019-07-22 00:45:38 +08:00 via Android 为了提高开发效率、降低维护成本、方便&解决问题 |
33 CodingNaux 2019-07-22 07:28:13 +08:00 via iPhone 约束 |
![]() | 34 hyl24 2019-07-22 10:06:07 +08:00 节省时间 提升开发效率 |
![]() | 35 zaul 2019-07-22 10:21:45 +08:00 提升开发效率,降低维护成本,方便解决问题 |
![]() | 36 zaul 2019-07-22 10:22:05 +08:00 提升开发效率,早点开发完,剩下时间摸鱼 |
![]() | 37 onice 2019-07-22 12:52:54 +08:00 大家用啥,我就用啥。看业界主流吧。例如 Java 开发都用 spring 全家桶,所以我也用 spring 全家桶了。 一个是业界的主流技术经过了大家的考研,第二个是好找工作,三个是用的人多,懂的人就多,方便问其他人。 |
![]() | 38 www5070504 2019-07-22 13:07:00 +08:00 大多数写 web 的 好像也没什么选择 web 框架+数据库 orm 好像也没有多少种选择 大多数业务好像也没有什么非要用某个框架才能解决痛点的程度 哪个熟悉用那个可能是最大的可能性了 |
![]() | 39 www5070504 2019-07-22 13:07:56 +08:00 而且很多东西就是轮子或者工具 写 web 的总不能从 tcp 连接开始写 那也太麻烦了 估计甭想下班了 |