你是怎么设计项目架构的? _深圳Android培训机构

深圳Android培训
达内深圳龙华中心

185-8926-6248

热门课程

你是怎么设计项目架构的?

  • 时间:2016-08-29 10:12
  • 发布:深圳Android培训
  • 来源:企业笔试题

如果你的简历中提到你曾经独立完成过某个项目,那么被问到“你是怎么设计项目架构的?”这个问题就是在所难免的。那么应该如何回答这个问题呢?深圳安卓培训(sz.android.tedu.cn)专家聊一下“你是怎么设计项目架构的“这个问题要怎么回答。

首先,我们需要记住一点,在回答任何问题前,揣摩一下面试官的出题意图总是没错的。作为一个刚毕业的学生,面试官真的指望你能设计出多么巧妙的架构么?恐怕并不是,他们更多地只是想考察你有没有项目分层、功能模块划分以及公共模块提取等基本意识,然后再顺带考察一下你对一些经典架构的理解,什么MVC,MVP,MVVM,CLEAN等。好了,让我们看看在架构设计这一方面会问哪些相关的问题吧。

1.你为什么选择使用MVC而不是MVP或者其他架构?

这道题实际考察的是你对市面上主流的Android架构模式的了解。你至少需要知道每种架构的大致结构,然后了解一下它们各自解决的是其它架构无法解决的什么问题。最后,在谈你自己的选择时,结合项目的特点来说就可以了。其实,大部分学生时期的项目用个MVC就足够了,如果你代码行数最多的Activity都不到7、8百行,那么使用MVP或者其它架构给你带来的额外负担恐怕要比你的收益高很多,切忌矫枉过正。不过,抱着学习心态去使用这些架构都是值得鼓励的。

2.写过BaseActivity,BaseFragment么?怎么设计的?

关于详细介绍如何设计BaseActivity的文章,大家有兴趣可以自行百度一下。我这里说两点:一是在项目开始阶段可以先提出一个基类,但不用花太多时间想着怎么填充内容进去,很可能得不偿失,其实随着你项目的进展,那些重复实现的内容就会慢慢浮现,这些内容就是需要你在基类里实现的。二是在你实在不知道BaseActiviy里要放些什么的时候,至少可以编写各个生命周期方法中的的log,以及像eventbus这类第三方库的初始化以及销毁操作。

3.你项目中的package划分,是按照层次划分的呢,还是按照功能划分的呢?为什么?

按层次划分的package这个大家可能比较常用,那么按功能划分呢?可以看下面这张图。 这么做的好处是什么呢?看到代码结构你就能辨别这个app是干嘛的;更加模块化;代码切换更容易;更高级别的抽象;功能和层都分离开来了;可读性更强以及更易维护的结构更高的内聚;更易扩展;更少遇到改动无关类或者文件的情况;添加或者移除功能要容易很多;更多可复用的模块。 我这里并不是说按功能划分就比按层次划分好,只是想让大家看看别的思路。这题没有绝对的答案,但一定说出你在划分时的思考。

4.了解过AOP么?项目中有用到过么?

AOP面向切面编程与面向对象编程对应。我们都知道面向对象描述的是纵向上的关系,从父到子再到孙。而面向切面解决的是横向的问题,这些问题可以简单地理解为与业务逻辑无关的代码重用问题。大家在自己的项目其实都或多或少的用到过,比如在处理Http, SharedPreferences, Json, Xml, File, Device, System, Log, 格式转换等是,我们提取出来的公共类。 这样做能够使得App整体的结构更清晰合理,避免局部的代码臃肿,方便开发、测试以及后续的维护。

上一篇:安卓工程师是怎样炼成的
下一篇:Android 数据存储的方式使用与总结

马上预约三天免费体验课

姓名:

电话:

你是怎么设计项目架构的?

安卓工程师面试题实测

Android常用面试题解析

达内准备的Android面试小测

选择城市和中心
贵州省

广西省

海南省