zoukankan      html  css  js  c++  java
  • 个人作业收官——软件工程实践总结

    目录:


    一、理想与现实

    1.故事伊始

    2.所谓提升

    二、“人月神话”

    1.吐槽篇

    2.项目经验

    三、前人栽树

    四、团队感悟

    五、读书笔记

    1.第一行代码

    2.代码质量

    六、亮相


    一、理想与现实

    1.故事伊始

    2.所谓提升

    不敢妄言,自己最大的收获就是发现了一群更牛的大佬们 他们装X与无形之间,就在谈笑间写下了不朽的行行代码,叫人折服![](http://images2015.cnblogs.com/blog/1021338/201701/1021338-20170108064624394-382759960.png)

    新工具新软件

    以上就是这学期接触到的软件,值得一提的有:

    cmd与Evernote,支持MD语法的富文本编辑,简化了生产随笔的时间;
    还有就是StartUML与VISIO,帮助整理思路,绘制流程图,类图等等
    最后就是墨刀了,帮助绘画原型。
    

    新语言与新平台

    语言没有更新,平台是加入了Android studio 大家庭。
    

    从第一行代码到代码统计

      比较欣喜的是自己的代码得到了复用,整体的框架结构也有所提升
      从XML,到activity到Javabean再到adapter最后是application都有涉及,感觉大致都有所了解了,成功的写出了demo。
      写的不是很多吧,我一开始就安排到前端了,之后虽然积极向model和controller靠近,但是能做的还是比较少的,等于是给自己的Java提交一份考卷般的心情。
      以前,我基本上没做过前端的工作,这次的锻炼让我了解到前端也是一门艺术。我想这个寒假有时间的话,自己再把安卓里的所有构件都玩一边,加深一下影响。
    

    新的学习方法与思考角度

    在思考上,更加多元化了;
    在学习风格上也不孤僻了;
    在学习品格上比较沉稳了;
    以前的我喜欢一个人写代码,一个人的思考,这次的软工,基本上都是团队的合作,协作的过程中,融入是一个过程,希望自己之后能打开一点。
    于此同时,我还是希望下学期有个人软件设计的作业,毕竟一个人独立完成的一门作业,成长我想回更快
    

    一、人月神话

    1.吐槽篇

    我们只是一个打着软件开发的帽子,冲冲撞撞的代码猿

    2.项目经验

    简单写一下:

    1.充分利用后台给的API使用文档,这样可以在完全不理解后台的实现过程的情况下,更好地进行项目开发    
    2.注意函数分类打包,为一类功能单独编写一个实现类,直接调用,降低代码的耦合性。 
    3.注意接口的灵活使用,自定义接口,然后通过setListener()或者直接在构造函数中传过来,就可以实现接口的回调。
    

    三、前人栽树

     没什么经验分享,就只有一句话,如果暑假的时候你已经选择了这门课,那就充分的应用暑假的时间磨炼自己,大三实在是大家都很忙,感觉身体被掏空~~~
     在一开始做项目的时候一定要使用git,在观看网上的demo的时候一定要自己了解意思,在动手敲,不要复制粘贴
    

    四、团队感悟

       这里是需要表达自己观点的地方,不要羞于表达,在一开始做项目的时候一定要使用git,在观看网上的demo的时候一定要自己了解意思,在动手敲,不要复制粘贴,在需求分析的时候,一定要好好你们的框架怎么做,一些规范一定要开始就订好。
       大家都是相辅相成的伙伴,有问题一定要及时沟通。
    

    五、读书笔记

    1.第一行代码

     我就是读《第一行代码》
    

    全局获取Context的技巧

      我们大多数的操作都是在活动中进行的,而活动本身就是一个Context对象,但是,当程序结构越来越复杂的时候,一些逻辑代码可能会脱离Activity类,可此时又需要用到Context,比如一些自定义的工具类里根据状态信息弹出Toast,解决的办法是可以在该工具类的方法中传入Context参数,但此时获取Context的任务就转移给了调用方,如果获取失败,则此次工具类的方法也就不会执行,一个更好的解决办法就是自定义Application类,管理程序内一些全局的状态信息,比如全局Context
    (不只是Context)

      Android提供了一个Application类,每当应用程序启动的时候,系统就会自动将这个类初始化,获取Context的任务,即可放在我们自定义的Application类中,首先需要创建一个MyApplication类继承自Application类,代码如下:

    [code]public class MyApplication extends Application {
        private static Context mContext;
        //重写父类onCreate()方法
        @Override
        public void onCreate() {
            mContext = getApplicationContext();
            super.onCreate();
        }
        //返回取到的context
        public static Context getContext(){
            return mContext;
        }
    }
    

    安卓UI布局

    •LinearLayout 线性布局,关键属性: ◦android:orientation=”vertical/horizontal”
    用于指定排列方向 ◦android:layout_gravity=”?”
    用于指定空间对齐方式,而android:layout指定的是文字在控件的对齐方式 ◦android:layout_weight=”?”
    用于使用比例指定空间的大小

    •RelativeLayout 相对布局,通过相对定位的方式让空间出现在布局的任何位置。 关键属性:
    ◦第一类:属性值为true或false   android:layout_centerHrizontal 水平居中
      android:layout_centerVertical 垂直居中   android:layout_centerInparent
    相对于父元素完全居中   android:layout_alignParentBottom 贴紧父元素的下边缘
      android:layout_alignParentLeft 贴紧父元素的左边缘
      android:layout_alignParentRight 贴紧父元素的右边缘
      android:layout_alignParentTop 贴紧父元素的上边缘
      android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物
    ◦第二类:属性值必须为id的引用名“@id/id-name”   android:layout_below 在某元素的下方
      android:layout_above 在某元素的的上方   android:layout_toLeftOf 在某元素的左边
      android:layout_toRightOf 在某元素的右边   android:layout_alignTop
    本元素的上边缘和某元素的的上边缘对齐   android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
      android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
      android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
    ◦第三类:属性值为具体的像素值,如30dip,40px   android:layout_marginBottom 离某元素底边缘的距离
      android:layout_marginLeft 离某元素左边缘的距离   android:layout_marginRight
    离某元素右边缘的距离   android:layout_marginTop 离某元素上边缘的距离

    •FrameLayout 所有的控件都摆放到布局的左上角,比较另类。 •TableLayout 使用表格的方式来排列控件

    难掌握的UI控件
    ListView

    优化方法:
    a)、每一个子项被滚动到屏幕内都会调用getView()方法,为了优化快速滚动的性能,不必每次都要加载一次布局,因为getView()方法中有一个convertView参数,用于将之前加载好的布局进行缓存以便重用。
    b)、不必每次都要用findViewById()获取子项布局控件的实例,将子项布局中的控件各个字段封装成一个类,利用view.setTag()和view.getTag()来存储和获取子项布局中的控件。

    2. 代码质量

      Stephen Vance所撰写的《高质量代码——软件测试原则、实践与模式》
    

    1.软件产品质量

    软件产品质量通常可以从以下六个方面去衡量(定义) :

    l 功能性(Functionality),即软件是否满足了客户业务要求;

    l 可用性(Usability),即衡量用户使用软件需要付出多大的努力;

    l 可靠性(Reliability),即软件是否能够一直处在一个稳定的状态上满足可用性;

    l 高效性(Efficiency),即衡量软件正常运行需要耗费多少物理资源;

    l 可维护性(Maintainability),即衡量对已经完成的软件进行调整需要多大的努力;

    l 可移植性(Portability),即衡量软件是否能够方便地部署到不同的运行环境中;

    由此可见,软件产品的质量有其明显的特殊性。而目前提高软件产品质量的主要方法是软件过程质量控制。

    提高代码质量的方法

       提高代码质量的方法主要有:培训和审查监督。培训主要是针对业务领域、编程工具和技术、服务意识等基础方面的增强;而审查监督是针对编码规范、代码走查、代码评审、单元测试、集成测试、持续集成、执行流程等编程方面的增强。
    

    1.亮相

  • 相关阅读:
    规约先行-(六)并发处理
    MySQL选择合适的方式存储时间
    规约先行-(五)集合处理
    规约先行-(四)OOP 规约
    12.20-LaTex git workflow
    6.25-ROS 软件度量
    6.19-rosdoc_lite and 文档构建工具
    12.27-ros-decision making
    12.3-分级并发有限状态机-SMACH
    12.07-rostest学习
  • 原文地址:https://www.cnblogs.com/ACE0404/p/6238354.html
Copyright © 2011-2022 走看看