为了账号安全,请及时绑定邮箱和手机立即绑定

【花式填坑第12期】恕我直言,你们真的懂Java框架吗?

【花式填坑第12期】恕我直言,你们真的懂Java框架吗?

慕女神 2017-07-11 10:06:07

http://img1.sycdn.imooc.com/59642fae0001e15f05000240.jpg


当生活节奏越来越快,当万事都开始追求极速与简洁的时候,身为程序员的我们更应该与时俱进。

就IT行业而言,技术的更新与迭代虽然时刻都在进行,但基础不扎实,如同高楼大厦地基不稳。


http://img1.sycdn.imooc.com/596430370001d86305000064.jpg


就大部分互联网公司而言,他们追求的都是低成本、高效益,需要的更是能直接进入工作状态的人才,

那么身为职场小白的我们要如何才能做到双赢呢?

欢迎参与本期话题,与老师聊聊如何利用Java框架实现双赢策略吧。


话题交流时间:7月14日--7月16日

话题交流方式:在下方评论区提问,老师会在活动期间一一给大家回复的



http://img1.sycdn.imooc.com/596430a5000191e305000064.jpg

嘉宾个人主页,点击可查看

http://img1.sycdn.imooc.com/59643145000152f005000426.jpg

http://img1.sycdn.imooc.com/59643156000122b405000064.jpg

  •   什么是坑?

相信每一位热爱学习の小伙伴都曾经遇到过各种各样的问题有待解决,我们称这种悬而未决的问题为坑。在各种各样奇奇怪怪的坑中,不乏深坑、巨坑,甚至是自己亲手挖的坑,但是光挖不填何年何月才能走上人生巅峰?

  •   怎么填?

每期1位大牛老师,围绕本期话题进行答疑与互动讨论

  •   怎么参加?

可根据话题主题在活动页下方进行留言,活动期间老师会为你解答

  •   活动时间结束了还能参与话题讨论吗?

可以。进行话题分享,获取更多答案。



往期话题干货整理:  

1、【花式填坑第7期】如何开发一款完整的Android App?


2、【花式填坑第9期】解密高级前端工程师の极速进化?



查看完整描述

35 回答

?
22不小了

TA贡献13条经验 获得超32个赞

Java中涉及到一些固定死的知识。例如Spring的配置我个人感觉每个项目都只有一两次配置,之后就落实到具体的代码实现。把时间花费在记忆这些基本固定死的东西上会不会显得有些死板。这个问题我觉得在我们编程中是常常需要取舍这些固定的知识是要交给搜索引擎还是留容量本就不高的大脑里。
另外一个问题我也想请教老师回答一些,由于我面试次数并不多,面试官在面试时会特别注意这些细节上固定死的知识吗?

查看完整回答
31 反对 回复 2017-07-11
  • 源生活
    源生活
    刚入这一行需要记死的东西可能是少不掉的,因为这个时候很难有能力掌握这些【死的东西】背后是要做什么,和什么原理能对得上。面试官会视你工作时间长短,如果没有工作经验,可能会问框架的使用,或者问框架的流程等,因为这个时候他愿意招你基本上是要你进公司就能干活的。除非你表现的能力很强,这时可能会继续探测你能力的上限。 等工作一段时间,需要自我感觉不好,代码的逻辑、结构其实不好,这时就有动力去探寻一下框架【死的知识】背后,如果你一直自我感觉良好那就麻烦了。探寻完了会发现,无非也就是那么回事,如果你自己搞个框架,难道就不让别人记【死的东西】了?一样的,这个是框架本身的规则。 关于记这个【死的知识】,我建议好记性不如烂笔头,用思维导图一类的,可以把相关知识串起来。
  • 如果只道是当时
    如果只道是当时
    个人观点:记住这些固定的配置是不太明智的,也是不太现实,毕竟框架很多,每种都有自己的配置。我个人的做法是知道知道这个框架都能干什么,在什么情况下需要什么功能。在实现一个功能的时候知道应该用这个东西的哪部分,再去查找相应的配置或实现就好了,没有必要记住具体的实现。
  • 如果只道是当时
    如果只道是当时
    对于面试,我个人感觉之所以会重视工作经验,是因为遇到一个问题,有经验的可以知道怎么去处理,或者怎样才能快速的找到问题所在。当有一个新的需求的时候,能快速的定位所需要的技术,以及一些难点和问题。又回到了上面说的,记住配置其实并没有什么用,不如知道这个能干什么,在什么情况下使用来的实在
点击展开后面2
?
yanrun

TA贡献327条经验 获得超244个赞

向老师请教一下,做框架迁移比如从hibernate迁移到mybatis,应该怎么准备,实施中有什么需要注意的以及会有什么坑

查看完整回答
15 反对 回复 2017-07-11
  • 源生活
    源生活
    突然发现回复里的格式不大对,没有换行。言归正传: 最重要的是做好回归测试,最重要的是做好回归测试,最重要的是做好回归测试。 一定是在hibernate上进行过的完整的测试用例全部要留存,无论单元测试还是结合测试,做好版本控制,这么大的变更要有分支,万不得一可回退,所有之前在hibernate上做过的测试要在迁移后全部都能通过,当然,这也不能保证万无一失,这是要看原本的测试用例的质量的!
?
qq_莫非

TA贡献270条经验 获得超92个赞

老师,我刚学完JSP和Servlet,准备学习框架,但是在慕课网上的框架视频,像Spring,完全听不懂配置,是不是有什么东西我还需要先学习么?

查看完整回答
8 反对 回复 2017-07-13
  • erutdioup8556
    erutdioup8556
    基础不行!!!!!
  • 源生活
    源生活
    先弄清楚框架所解决的问题再学,我换句话说:你已经会jsp和Servlet了,不是也能做点东西了吗?这样有什么问题吗?如果你觉得有问题,那问题在哪?这个框架能帮你解决吗?
?
erutdioup8556

TA贡献43条经验 获得超157个赞

老师,我现在找工作,问道公司是用到传统技术ssh框架的,我就没打算聊下去,因为自己刚出来,想找个技术氛围的平台,以后跳槽也有好的优势,我这样做可以吗?

查看完整回答
5 反对 回复 2017-07-13
  • 源生活
    源生活
    对于工作时间较短且没有自制力的同学来说,好的氛围确实会对人有影响,但我没明白【传统技术ssh框架】和【技术氛围的平台】有什么必然联系吗?我知道有的公司是不用任何框架的,JDK就够了,自己有专门的部门来打造、维护自己公司独特的框架,这样的算是有【技术氛围的平台】还是算没有呢?你不用急着解释,如果你确实发现这个公司不符合你的要求,可以做出这样的选择,但是~~~~~~,我最后说一句最重要的,靠人不如靠自己,无论在什么样的环境,你把事情做到极致,注意,一定要做到【极致】,这对你的功力有相当高的要求,如果你一直这样来看待问题并且照做,就算没做到【极致】,但能力提升我想是杠杠的,这时再看在什么样的环境重要吗?可能连收入都不是问题了吧?想去哪,已经完全在于你怎么选,而不是公司要不要你。
?
迷茫_坚定

TA贡献1条经验 获得超4个赞

老师,想问一下,如何去看 框架的源码,点击进去, 一个方法接着一个方法,需要每个方法都看懂吗, 应该怎么才能知道框架中这个方法是如何实现的,如何逻辑清晰的读懂源码,知道这个源码的大体架构

查看完整回答
4 反对 回复 2017-07-13
  • 源生活
    源生活
    点击进去,一个方法接着一个方法,这样看源码不是好办法,追踪源码解决问题的时候会这么干,但要了解框架的大体架构不能先看细节,那样就被困在里面了。 要通过官方文档、或者其他网站上的技术文档去找,框架结构的那种图,包括结构、层次关系、关键接口、流程和功能描述等,用这种方法把整个框架大概的给描绘出来,了解一下我们平时使用一个功能时,这个功能在这种图里是由哪几个关键接口支撑了这个功能,整个过程是什么样的,然后再去找这些接口以及实现类,再去研究细节。
?
erutdioup8556

TA贡献43条经验 获得超157个赞

Java框架的ssh还有必要去研究吗?现在只是了解,没用ssh做过项目,都是用ssm、spring root(在学)去做项目,求老师给点建议

查看完整回答
4 反对 回复 2017-07-12
  • 源生活
    源生活
    我不知道你说的【研究】和我想象的【研究】是不是一个意思,我理解的【研究】,就不单纯是会使用的基础,是研究框架背后的故事,这样的话,ssm、spring boot也够你研究的了,至于你说的要不要再去“研究”ssh,我个人认为不是重点,如果你把ssm的M给研究好了,再去用ssh里的H,找到两个框架要解决问题的差异,学会使用不是问题。问题还是在于【框架是怎么做到的】
?
大咪

TA贡献877条经验 获得超384个赞

老师您好,在慕课网上看您的视频非常有趣。。可以说是编程届的相声演员,我也记得看过您的博客,有句影响比较深刻的话:代码来源生活,我也非常赞同。。。对于java的框架来说,每个企业都有着不同的框架,那么框架之间最底层的基础是不是才是各种框架之间最重要的联系?而这些基础您可以大概介绍下路径嘛(例如servlet..等等),便于对以后新出的框架做好快速学习的基础,谢谢源老师。。。

查看完整回答
4 反对 回复 2017-07-12
?
小小幻术师

TA贡献1条经验 获得超4个赞

如过前台一个按钮按下后后台执行漫长的耗时操作,这个时候,不会因为这个耗时操作焦点停留在按钮上,不耽误前台与后台继续进行其他交互,当那个耗时操作完了会回传数据,这种效果是怎么实现的呢,是基本逻辑解决?还是框架实现???求教!!!

查看完整回答
4 反对 回复 2017-07-11
  • 精慕门3318764
    精慕门3318764
    我也想知道这个问题
  • 北海北极熊
    北海北极熊
    前台后台交互用AJAX一般比较好,而且 由同步和异步,建议你们去百度下,很实用。 就我自己经历的,如果后台需要很长时间,而且数据又必须返回前台,那么前台页面一般会显示处理中,不允许用户做别的操作。
  • 小小幻术师
    小小幻术师
    我也使用过AJAX,但是只是能做页面异步交互,只要后台耗时操作,前台就得等着。所以由于这个原因不能做实时监控,但是我看网上有能做实时监控的案例,所以很想知道现在实用流行的技术
点击展开后面3
?
gingerredjade

TA贡献3条经验 获得超3个赞

老师您好~之前用过传统ssh,但现在服务化、微服务盛行,想要找我这些新技术需要从哪些技术开始学起呢?能否给个技术学习路线呢?
能不能介绍下目前成熟的框架技术(从web前端到后端服务,开发到上线具体用到哪些技术(点))?

查看完整回答
3 反对 回复 2017-07-13
  • 源生活
    源生活
    关于服务化、微服务的概念,可以了解一下,但是最重要的我认为还是先了解微服务为什么会出现,他为企业解决了哪些问题,在解决这些问题的同时,又带来了一些新的问题,该如何应对,是不是所有企业都有必要采用微服务?你从这个角度去考虑会感觉不一样的。 如果能站在更高的角度去看,【学会使用】真的不是问题,真正问题在于【怎么用】和【什么时候该用】。
?
D明日边缘

TA贡献16条经验 获得超29个赞

对于spring系列使用增多怎么看?框架封装了很多方法,简化了开发,离开了岂不是废了~而基本功很重要,java的基本功怎么练?对java应用的前途怎么看?

查看完整回答
3 反对 回复 2017-07-12
  • 源生活
    源生活
    封装?封装了又不是没给源码,练基本功要找到自己的方法,找到或设立一个个小目标很重要,以我的视频《通过自动回复机器人学Mybatis---加强版》为例,因为这样更直观一点,里面在解析mybatis接口式编程时,为什么只写了个接口就能用?哦,源码里用了动态代理,动态代理我会吗?要不要自己实现一个?这样算不算在练基本功。
  • D明日边缘
    D明日边缘
    没毛病?
?
Python工程师

TA贡献37条经验 获得超16个赞

谁能给我讲讲下框架?必有重谢

查看完整回答
4 反对 回复 2017-07-11
  • 源生活
    源生活
    这个问题好笼统啊,先看看慕课上这些讲师讲的框架吧!看看哪个是你感兴趣、并且用得上的。先体会一下再来重新【问问题】,问出一个好的问题,很重要!
  • 慕运维8076518
    慕运维8076518
    我觉得框架说白了就是多种结构,而结构的差异也就呈现出了框架的差异。如果把房子比喻成一种框架那它的结构就有水泥、木板、砖块。也许有人说框架就是框架,而我也会说房子就是房子!
?
么哒

TA贡献3条经验 获得超2个赞

java新流行的框架比如springbooot,新架构比如微服务,应该追吗?从SSH,SSM到加入响应式,分布式,之类的框架,很多公司貌似也达不到高并发的服务,那作为应届毕业生,自身能力还不足的情况下,是追求新的技术,还是更应该保证就业了之后再工作中学习新技术

查看完整回答
2 反对 回复 2017-07-14
  • 源生活
    源生活
    尽自己最大能力去稍微大一点的公司,确实如你所说,其实现在很多流行,大部分企业其实根本用不上,甚至用还不如不用,用反而增加了成本,没带来任何好处,而很多东西你不去大一点的公司又得不到实践,只是纯理论。如果暂时没办法进大的公司,没办法从工作中获取大公司那种架构所需知识的话,一定要快速额外补充,然后再尝试去大公司,大公司的架构给人带来的知识面、层次、眼界确实不一样。
  • 么哒
    么哒 回复 源生活
    感谢回答,正在努力走内推
?
拉风帅

TA贡献1条经验 获得超2个赞

源生活老师你好,入职半年,基础的增删改查都会实现,现在想提升自但是没有明确的学习规划,对基础感觉自己还有很薄弱,现在怎么提升自己,并且安排自己的学习计划?

查看完整回答
2 反对 回复 2017-07-14
  • 源生活
    源生活
    先定目标再谈学习规划。没有大目标,总有小目标,没有小目标,说明你还不了解这个行业和对自身的判断,那先去了解这个行业的趋势和所需,然后再对自己进行一个评估,总要找到自己适合的点,感兴趣的点。不然这怎么规划?
?
Manes

TA贡献15条经验 获得超66个赞

老师,工作中经常会和需求对冲,这点怎么调和?

比如公司要的是什么,我们要(money)的是什么,对没错,肯定有出入,但怎么和谐处理,请老师明示

查看完整回答
2 反对 回复 2017-07-14
  • 源生活
    源生活
    真正想解决这个问题的人从来不会觉得这是什么问题,这种问题都觉得是问题,那说明你还是不是真正想解决问题,每天除工作时间,总不至于死在公司了吧?如果下班后的时间,每天,我说的是【每天】,用4个小时来解决个人提升的问题,我不管这4个小时从哪来,一定要有效果,甚至可以用来解决工作上的问题,以让工作的效率更高为目的,也是自己能力的一种提升啊,把本职工作做到极致,不是一种能力吗?你把工作做到比所有人都好不需要能力吗?在这个行业不会得到提升吗?其他时间根据现在行业的趋势,结合自身的情况,来规划学习充电,来提升自己,这算什么问题啊?
?
无冕之王

TA贡献2条经验 获得超1个赞

随着nodejs的新一代无阻塞网络的兴起,java的核心工作会不会从框架转向服务器性能调优,对于即将毕业的大学生应该多去看看性能调优这一块还是sprng boot框架那

查看完整回答
1 反对 回复 2017-07-16
?
qq_想象中_03627814

TA贡献2条经验 获得超9个赞

老师你好,我现在是一名即将找工作的大三本科生,我对目前主流五大框架的了解仅限于会搭建,会基本使用(对spring概念比较清楚),马上就要校招了,我在时间有限的情况下是否应该继续深入对框架的理解(概念性的),还是这样已经足够了而去转战其他地方(数据结构,Linux,网络基础等)

查看完整回答
1 反对 回复 2017-07-16
  • 慕侠0844227
    慕侠0844227
    我觉得足够了,需要补补408
  • qq_想象中_03627814
    qq_想象中_03627814
    我不是计科专业的,所以现在对计算机组成原理和操作系统基本上一窍不通,请问这个面试频率高吗
  • 慕侠0844227
    慕侠0844227
    操作系统有些企业会有少量涉及。主要是数据结构和计算机网络。好好复习下,加油!
?
Jason4065339

TA贡献1条经验 获得超1个赞

请问老师,怎样提高解决问题的能力

在调试程序中遇到bug然后自己通过查阅资料解决了,这个也能算为解决问题的能力吗?

查看完整回答
1 反对 回复 2017-07-15
  • 源生活
    源生活
    已经不止一个同学问了到底什么是解决问题能力,怎么提高解决问题能力,我在一起说一下个人的观点:解决问题的能力我认为大部分的决定因素说的是解决问题的思路,而你们说的是解决问题的手段,就是有多少种方法来解决,这是两码事,我还是认为思路更重要,接下来才是有多少种方法的问题。以我在实战课的问答区回答一个同学的问题为例,他问的问题是:视频中只说了如何上传一个文件,用Spring的MultipartFile来接,然后用transferTo方法来存,他现在想要解决的问题是上传的文件是excel表,并且希望能不存成磁盘上的文件就可以解析excel表的内容。这个时候来分析这个问题,理清解决问题的思路就很有意思了,这个同学很聪明,我没有告诉他最终的答案,只说了思路,他就解决了,难道说我的思路不重要吗?思路是什么?首先你知道怎么解析excel吗?当然,这个同学知道,他用的是POI,我说那好,那接下来要解析的是三个问题,这三个问题都解决了,问题就解决了,第一,不希望存成磁盘文件,那就要获取上传文件时的那个文件流,怎么获取?第二,用文件流能不能构造poi的excel对象,不然没办法解析呀是吧。第三,从MultipartFile中能获取到上传的文件流吗?如果不能,还有其他办法吗?就这三个问题,后来这个同学不是很轻松的就解决了吗?不管是搜来的,还是发贴问来的,还是看技术论坛的,不管最终是怎么解决的, 如果不具备这个思路,那要从哪入手呢?那不是狗咬刺猬吗?你看解决问题的思路重要吗?这个更应该算是【解决问题的能力】?还是【查找的过程】算是解决问题的能力呢?然后你们问我,我也想问问你们,如果你们认可我的说法,你们说该如何提高【解决问题的能力】?这是一种思考问题的方式,是一种感觉,真的只可意会不可言传,他没有什么教科书,没有什么标准固定答案,就是一种行业的经验积累,加上知识的储备,结合自己的思考,然后直觉上觉得应该这样去解决。
?
erutdioup8556

TA贡献43条经验 获得超157个赞

老师,学完和掌握到java实战的技术的80%,相当于外面几年经验???或者说可以胜任企业实际开发吗?

查看完整回答
1 反对 回复 2017-07-15
  • 源生活
    源生活
    以慕课网的视频的质量,能把java实战里的视频看个80%,覆盖一下知识面,我相信是可以胜任企业实际开发的。
?
逐梦稚者

TA贡献1条经验 获得超1个赞

我刚好有一个Java基础的问题搞不懂,找好多人问了,他们也答不上来,关于Java泛型。

Q1 : public static <T> void sort(List<T> list, Comparator<? super T> c)

Collections.sort()方法的Comparator参数,它的泛型使用了super通配符。我理解不了这里为什么要用super。

我能理解Collections.copy()方法中的两个参数的通配符,从src拷贝到dest中,src的extends表示数据全都可以视作T类型,dest的super表示List作为T类型的父类型,确保可以放入任何T类型对象。

同样的问题出现在我看RxJava源码时,public final <R> Observable<R> map(Function<? super T, ? extends R> mapper)操作符中,为什么会用<? super T>来表示被转换对象?

我大概知道一点PECS原则,可是我没有办法把这个原则用在理解这几个泛型通配符上。


Q2:假如我有一个类声明了泛型,如public class ResponseBase<T>{},在这个类中,我要怎样取得T的class对象?比如使用Gson解析Json的时候,调用方法时需要传入一个class对象。有办法能直接根据泛型取到class对象,而不用在构造方法中传入一个Class<T>的对象吗?

查看完整回答
1 反对 回复 2017-07-15
  • 源生活
    源生活
    Q1:Collections.sort()方法是一个重载的方法,有一个参数的,两个参数的,一个参数,是需要List<T>中的这个T要已经实现了Comparable接口,才可以直接排序,否则就要再加一个参数,就是一个比较器,这个方法目的很明显,按正常来说,排序方法只用Collections.sort(List<T> list)这个方法难道不够用吗?够用了,那为什么还要再多一个方法,加入第二个参数?是让我们自己写的比较规则可以复用,这个比较器是基于T的父类来实现的,也就是说,基本上都是在用父类的一些属性来决定排序规则,当这些规则同样也适用于子类时,那不就能用Collections.sort(List<T> list, Comparator<? super T> c)这个方法来完成了吗?这样,T类(这里的T不止一种)不用实现比较规则,都用Comparator来完成比较规则,Comparator里是T的父类,Comparator可以用于N个像T这样的类的比较,来完成排序,这N个T这样的类,都是Comparator里实现的那个类的子类,然后这里的比较器要求<? super T>,必须是T的父类才能完成这个比较过程,这不是很合理吗?只有是T的父类才能完成共通的比较器规则,因为T的父类用到的属性,T类也继承过来了,是可以用的,如果<? super T>写成<T>,那这个比较器,只能用于T自身,那和不加这个参数也没什么区别,如果写成<? extends T>更是扯淡,子类的比较器是不能用于父类的,子类的比较器用到的一些属性,父类可不一定有。希望我这样说能说的明白!! Q2:看下jackson的实现方式的源码,字符串转成指定java对象,如何解决java对象的class传入问题,甚至是带泛型的class,就是这行代码的背后源码,你好好体会一下:mapper.readValue("json字符串",new TypeReference<List<Map<String,自定义类型>>>() {});你看看这里要转换的目标java类型:List<Map<String,自定义类型>>,你用class怎么表示这样用泛型表示的嵌套复杂类型?jackson不也照样能正确的帮我们序列化成目标的java类型吗?是怎么做到的?去看看源码,很有意思,这样的问题如果能解决,你说的不传入class对象,而转成泛型指定的class对象,就不是问题了是吧?
?
netBuffer

TA贡献1条经验 获得超1个赞

一个技术渣要经历怎样的过程才能成长为架构师,工作过程中怎么锻炼自己的架构设计能力?

查看完整回答
1 反对 回复 2017-07-14
首页上一页12下一页尾页

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信