码迷,mamicode.com
首页 > 移动开发 > 详细

[ios学习]零基础学习iOS开发如何分配时间

时间:2015-09-15 18:35:12      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

在培训期间,学生的时间应该如何分配

学生在学习期间的主要工作时间分配

  • 9:00~ 9:30,认真听同学的学习阶段中的分享,俗话说的好"三人行,必有我师";

  • 9:30~ 18:00,认真听老师的课堂上课,并且要准备好一个手写笔记本,好记性不如烂笔头,当然我个人认为记录在电脑上,并不靠谱,而且在复习时还费眼,我从开始上学到现在就一直有在笔记本上写写画画的习惯;

  • 19:00~ 20:00,用一个小时的时间,回忆今天上课的知识点,这时笔记本的重要性就体现了,它可以帮助我们心无旁骛的复习和总结;

  • 20:00~ 22:00,用来完成今天的作业及预习第二天的内容,并且将作业中遇到的问题及预习时遇到的问题记录下来,在第二天上课时可以拿出笔记本来问老师;

如果还有遇到需要时间去补习的内容,可以在每个周周六、周日,通过解决笔记本上的遗漏知识点来补习.


程序员的主要工作是什么

  • 阅读代码

    • 阅读公司中已经处于迭代过程中的代码(理解公司前辈开发过程中的开发思路);

    • 阅读Github上的优秀的代码框架(比较Forks与Stars的数量)(学习其他优秀程序员编写代码功能时的思路);

    • 阅读代码的目的,是我们要做到对项目代码的执行流程和细节做到胸有成竹;

在阅读代码的过程中,需要注意的流程:
1.首先复制一份原始代码到当前路径,并且保存为文件名加日期;

例如:LODoudizhu2015-03-22

2.然后找到AppDelegate.m文件,并且从程序的启动流程中,阅读相关的功能代码;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    //...
    //程序启动流程}

3.尝试注释程序中的某行我们认为的重要性语句,并且运行程序看结果;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];    
    //例如,如下行的代码就非常重要,因为它决定了我们的本程序是否可以显示界面
    //[self.window makeKeyAndVisible];
    
    LO_RootViewController *root = [[LO_RootViewController alloc] init];    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:root];    self.window.rootViewController = nav;    return YES;
}

4.当遇到与我们期望的运行结果不同时,可以通过进入该函数内部查看内部的实现代码,并且重复第三步;
5.直到,我们可以将我们负责的模块功能的实现方式.

  • 编写代码

    • 编写功能中的主要逻辑代码(主要以实现功能为主);

    • 编程功能中需要测试逻辑是否正确的测试用例(主要以测试Bug为主);

    • 编写提供给同事或者其他人的接口代码(主要以代码使用方便为主);

1.主要逻辑代码刚刚写完时,其实会很丑,有很多的if,for等等,举例如下:

- (void)onGetGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error
{
    //    if ([result.address isEqualToString:self.startAddressTF.text]) {
        //  说明当前编码的对象是开始节点
        self.startNode = [[BMKPlanNode alloc] init];
        //  给节点的坐标位置赋值
        _startNode.pt = result.location;
        
        //  发起对目标节点的地理编码
        //  1.创建正向地理编码选项对象        BMKGeoCodeSearchOption *geoOption = [[BMKGeoCodeSearchOption alloc] init];
        geoOption.city = self.endCityTF.text;
        geoOption.address = self.endAddressTF.text;
        
        //  执行正向编码
        [self.getCodeSearch geoCode:geoOption];
        
        //
        
        self.endNode = nil;
        
        
        
    }else{
        self.endNode = [[BMKPlanNode alloc] init];
        _endNode.pt = result.location;
    }    
    if (_startNode != nil && _endNode != nil) {
        //  开始进行路线规划
        //  1.创建驾车路线规划        BMKDrivingRoutePlanOption *drivingRoutOption = [[BMKDrivingRoutePlanOption alloc] init];
        //  2.指定开始节点和目标节点
        drivingRoutOption.from = _startNode;
        drivingRoutOption.to = _endNode;
        //  3.让路线搜索服务对象搜索路线
        [self.routeSearch drivingSearch:drivingRoutOption];
        
        
    }
}

2.用例测试代码在编写过程中,其实是最消耗时间的部分,因为要大量的举例论证Bug:

    // Use this for initialization
	void Start ()
	{		//打开数据库
		LOSQLiteTools.OpenDB("yihuiyun");


		SQLObject[] list = LOSQLiteTools.SelectEntity (typeof(Student));		foreach (SQLObject item in list) 
		{
			Debug.Log (item.ToString());
		}
	}

3.当开始给同事编写接口代码时,要注意的地方就是方便些与扩展性的问题了:

#region 公开函数
		/// <summary>
		/// 异步加载资源
		/// </summary>
		public IEnumerator LoadAssetAsync (string assetBundleName)
		{			//开始加载包裹
			yield return StartCoroutine(LoadAssetBundle (assetBundleName));
		}		/// <summary>
		/// 异步加载场景
		/// </summary>
		public IEnumerator LoadLevelAsync (string assetBundleName)
		{			//加载资源包
			yield return StartCoroutine(LoadAssetBundle (assetBundleName));

		}		#endregion



[ios学习]零基础学习iOS开发如何分配时间

标签:

原文地址:http://my.oschina.net/u/2438875/blog/506420

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!