本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!

问1:请问大牛对功能和框架的认识有哪些?(提问者:执笔记忆的空白

比如对于一个小公司来说,什么样的框架最适用,您经历过的小、中、大公司对于框架是如何处理的?自己封装框架?还是什么选择市面上流行的框架? 另外,对于一个团队,您觉得什么最重要?对于一个leader,怎样管理好自己的team。

答1:

你好,大牛这个称呼,一直都是给予别人的,我在坚持的事就是把复杂的东西,简单化的介绍给大家。

对于框架来说,刚开始在小公司的时候,没在于过框架,大部分逻辑写在Activity里,然后加上model和自定义view就完成一个项目;跳到中型公司的时候,也是原始期,项目刚开始,只是加入了controller,封装db管理器和逻辑管理器等;而到大型公司的时候,可谓真的是使用框架,从两位大牛身上学到比较多的东西,详见支付宝黎三平《支付宝钱包客户端技术架构》和天猫嗷啸《漫谈天猫架构设计》,网上应用都能搜到分别介绍支付宝项目依赖开发和各种层次的设计,到目前所在公司经过两年多积累形成一套自己独特的架构体系。

自己做架构,主要以公司的业务结构为基础搭建,遵循MVC或MVP或MVVP等模块,使用设计模式对整体进行一个定义,让后续的同学理解你的用意,一方面有利于项目快速开发,另一方面也有利于项目的稳定,同时可以分拆其中的一些模块进行细化和再造;当然在满足自己公司的业务要求时,可以寻求一些更好的体验或者优化方案,而项目最重要的莫过于网络框架和图片加载框架,而数据埋点也很重要,只是目前没发现什么样去做这块的框架;
现在常用的架构层级是:View层、activity层、model层、fragment层、service层、core层、依赖层、数据解析层、数据请求层、加载过程层、适配器层、工具层等,还有一些独立的功能和模块,以及分享和相似功能继承和抽象等。

作为项目负责人,或者叫架构师,你需要理解每套框架背后的设计原理,比较其优劣性和稳定性,做出合理的选择;以免选择后没源码不方便维护,或者框架本身还有明显bug未解决;是否满足项目的业务如加载中,如缓存在sd卡和内存等一些feature;这些都是要考虑的核心内容,最终改造成你自己的东西,像大公司一般不会轻易用别人的框架,可能存在漏洞泄漏自己的数据等等,但小公司也不担心那些,还不足够大到让人重视,暂时可以把性能和效率放在第一位,重视用户体验。

而对于一个团队,自身的管理能力,技术水平,都是限制团队发展和项目完成情况的硬性条件,比如平常项目期个人采用的日清法,可以有效推动进度;跟产品经理沟通一些需求实现方式,跟后端和UI沟通一些接口和设计问题;设计并维护架构,方便小组成员的开发工作,并在必要时给予提醒和帮助;做代码Review,保证代码质量,制定相应的项目要求和代码要求等;对团队进行定期培训和项目总结,争取福利也蛮重要的;对于某方面比较厉害的同事,可以将项目中一些模块或问题交给他,帮助他成长和满足其价值实现,尽量使用前沿技术和开发工具,使团队走在时代前列,自身也会有优越感;带团队呢,最主要的是:给大家提供良好的团队氛围,使每个人都能得到成长和价值实现,帮助大家争取好的机会和福利,以及做好面试把握好什么样的人可以加入团队-价值观、合作态度、学习能力、目标性等等吧。

问2:关于个人开发app有什么指导建议(提问者:承宇mom程序媛

因为我们知道开发一款app,需要设计到很多方面,前端UI,后端服务,还有Android app开发。我想请问下大师有什么建议吗?

比如UI设计,有什么好的工具,好的app设计网站或者搜素材的地方推荐?
比如后端服务,有什么好的框架可以使用?

或者说我有一个很好的思路,怎么能一个人做下来一个能用的,好用的app?

希望大师能指点迷津,因为我相信只有实践才能学得更快,而且是有成果才能有成就感激励自己。谢谢!!

答2:

你好,首先呢,不知道你有没有开发过app,显然你说的那么多知识,感觉你的出发点是所有东西都自己做,这样工作量好大,不如将一些事情外包,比如产品设计、UI设计,后端也让搭一套简单接口出来,应该不到5000块吧。
其次一件事情要做精,个人经验至少要5年吧,至少编程如此,UI设计也是全新的一门技术,后端嘛可以3年学好;
UI设计,个人没有设计过,一般有原画师画,或者用PS,公司同事都是用PS做图的,个人以前在学校学过简单的,但UI设计确实没做过;
个人觉得第一、用系统提供的图片吧,framework层提供大多数软件所需要的图片,前进后退、删除等等;第二、自定义shape;第三、可以在网站上找素材比如:http://blog.csdn.net/reboot123/article/details/8611382这篇博文有一些介绍;第四、图片压缩,使用webphttp://blog.csdn.net/reboot123/article/details/46552437,和tinypng.com
关于后端服务,大学时学的SSH,感觉好麻烦,但后端同事说团队合作嘛,还是要用这个,另外可以加上JBoss,可能协作性比较强;如果个人开发, 比较建议使用JFinal,个人也在学习中,希望学会好,做个个人网站,有兴趣也可以一起学习交流经验。
至于App开发,有一些经验之谈,比如:http://blog.csdn.net/liuxian13183/article/category/1157874可以参考个人博客项目管理系列的文章,如果有兴趣还可以再看看项目架构和设计模式,对产品和android系统有个通体的了解,开发会比较快速哦。

最后再给个建议,个人做app嘛,可以做个不需要后端的,简单一点的,比如照相机,比如播放器,本地素材+开源库就足够了。没事多FQ,看看github上的项目,都写的很棒的。产品呢,要简单,操作方便,功能清晰,最好你家小朋友都可以马上学会使用,这样当然是最好的了。

问3:Java基础---应该有什么样的准备和多深的积累?(提问者:jheee

其他方面的基本都问到 了,就问下Java基础相关的吧。看完您回答的其他问题,感觉很棒。
如果以后打算从事Android应用开发,或大数据方向,就Java基础而言,应该有什么样的准备和多深的积累?
谢谢。

答3:

你好,先谢谢你的肯定。
关于Java基础,其实就那一些东西,简单的概念,简单的算法,简单的容器,简单的设计模式,很简单的知道就可以开始安卓开发了。
安卓开发,运用比较多的是安卓上的概念,比如四大组件,四大布局,基本参数,窗体,View,开源框架,会用这些也就满足基础的开发任务。

至于想更高效一些,更多的是经验之谈,每个人可能都不太一样,可能你做新闻客户端,他做视频播放,我做金融客户端,还有做游戏的,每个方向重心不同,自然所学的技术也就不同;个人是专注应用程序开发,几乎没做过游戏客户端,所以提供的也仅是应用层的经验。
比如线程:它的定义、多进程的实现和管理,同步和异步的实现原则,如何实现并发,高效的原则,甚至虚拟机的定义,内存大小,缓存机制的设计等
比如界面:如何画出,每个动作会触发哪些底层和表层操作,内存占比,动画,与多层界面的交互,如View、ViewGroup、Window、Activity等
比如布局:内边距、外边距、weight比例、tableLayout缩哪行哪列,hierachy层级关系,字体色值,样式,自定义属性等
当然还有很多,最近准备出一本书,估计要等的比较久,是写这些东西的,可以先参考下本人的博客,基础篇、进阶篇、高级篇、源码篇。

关于大数据,自己没做过,只是有朋友在做,那天他在依据算法,对一些byte流、char等字符做操作,这个可能对Java底层要求严格一些,比如位、内存存储和引用及使用、回收机制、算法等等,由于是界面化的,你可以买本大数据的书看一看。

答CsdnBlogger问-关于安卓入行和开发问题的更多相关文章

  1. 答CsdnBlogger问-关于VR取代安卓的问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 安卓未来的发展和命运几何? 现在VR和AR各种火爆,是否安卓能够在洪流中屹立不倒呢? 你好,其实这个 ...

  2. 答CsdnBlogger问-关于职业发展和团队管理问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 问1:关于职业发展以及团队管理?(正能同學_) 请问在二线城市的小公司里,普通Android开发者的 ...

  3. 答CsdnBlogger问-关于定时和后台服务问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 前段时间写了不少博客,在问答页面也陆续回答几十个问题,之后Csdn乙同学找到我,说要推荐我参加问答类 ...

  4. FTF登入tiny210开发板

    配置环境一: 第一步:安装虚拟机             1)安装虚拟机+Linux12.04             2)安装FTP软件 第二步:配置超级终端(串口)             1)开 ...

  5. 【转载】谷歌酝酿将苹果Swift作为安卓APP主要开发语言

    TNW中文站 4月8日报道 安卓操作系统的软件开发语言是Java,而在过去几年中,有关Java的版权,谷歌(微博)和甲骨文之间发生了长期的诉讼.最新外媒消息称,谷歌正在考虑将苹果开发的Swift作为未 ...

  6. Android安卓手机游戏开发

    成都传智播客Java培训,免费学Android安卓手机游戏开发,安卓android开发课程包括Android安卓应用开发和Android安卓游戏开发两个方向,可是偏向游戏开发. 依据"199 ...

  7. 弧形菜单2(动画渐入)Kotlin开发(附带java源码)

    弧形菜单2(动画渐入+Kotlin开发) 前言:基于AndroidStudio的采用Kotlin语言开发的动画渐入的弧形菜单...... 效果: 开发环境:AndroidStudio2.2.1+gra ...

  8. [答网友问]让GridLength支持动画

    原文:[答网友问]让GridLength支持动画 [答网友问]WPF中让GridLength类型支持动画                                                 ...

  9. 安卓和java开发环境的安装

    java配置安卓需要,sdk,jdk(java),adt,eclipse 对于jdk的配置和安装: 1 卸载原来的jdk,重新配置环境变量只需要:在系统变量中把新的jdkJ安装路径写到“JAVA_HO ...

随机推荐

  1. Rotating Sentences

    #include<bits/stdc++.h> #define N 110 int main(void) { char s[N][N]; int i, j, k, max; , memse ...

  2. HealthKit开发教程之HealthKit的复合数据

    HealthKit开发教程之HealthKit的复合数据 复合数据就是复合单位和值构成的数据.所谓复合单位就是由单位进行乘法.除法等得到的单位,如m/s.lb·ft等就是复合单位.本节将针对这些复合数 ...

  3. jQuery Event.delegateTarget 属性详解

    // 为id为element的元素中的所有span元素绑定click事件 $("#element").on( "click", "span" ...

  4. 10个国内外jQuery的CDN性能大比拼

    jQuery是前端开发最常见也是最流行的javascript库,如何去加载它才能使我们的项目性能更好以及问什么要用CDN?当用户访问自己的站点时从服务器加载文件,每个服务器同时只能下载2-4个文件,这 ...

  5. CentOS6.4 安装Nagios 并监控端口

    1.下载所需文件nagios-3.4.3.tar.gz,nagios-plugins-1.4.15.tar.gz,nrpe-2.14.tar.gz,sendEmail-v1.56.tar.gz 下载地 ...

  6. Codeforces Round #192 (Div. 2) A. Cakeminator

    #include <iostream> #include <vector> using namespace std; int main(){ int r,c; cin > ...

  7. hilbert

    hilbert 难度级别: A: 编程语言:不限:运行时间限制:1000ms: 运行空间限制:131072KB: 代码长度限制:102400B 试题描述 图1为1阶Hilbert曲线,它由3条长度为1 ...

  8. COJ978 WZJ的数据结构(负二十二)

    试题描述 输入两个正整数N.K,以及N个整数Ai,求第K小数. 输入 第一行为两个正整数N.K.第二行为N个正整数Ai. 输出 输出第K小数. 输入示例 5 41 2 3 3 5 输出示例 3 其他说 ...

  9. Android之adb异常

    Android使用adb模拟器时出现"unable to establish connection to adb"."ADB server didn't ACK" ...

  10. Linux_自动调整linux系统时间和时区与Internet时间同步

    调整linux系统时间和时区与Internet时间同步 一.修改时区:# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime修改为中国的东八区# v ...