项目组织机构csdn是什么么?

常见项目管理组织机构简介

职能型组织如下图所示,一般适用于业务比较固定的企业,如国企或流水生产制造行业,这种企业工作任务一般由职能经理安排就可以,当然,现在国企也在转变,不一定是全职能型结构。

弱矩阵组织和全职能型组织比较类似,主要区别是偶尔可能有一些项目需要多个部门协作完成,从主要责任部门挑选一位做项目负责人,主要是负责项目协调作用,一般不进行项目考核。这种组织在现代国企中很常见。

平衡型矩阵组织属于中性结构,日常工作由职能经理安排,当有项目来时从主要责任部门安排项目经理,然后从其它职能部门抽调人员做为项目成员,项目经理权力一般,负责项目协调,项目成员工作任务安排,项目结束进行一定的考核,完成后项目经理回所在部门听从职能经理安排。这种组织比较常见,中小型IT公司就经常采用。

强矩阵组织对项目管理非常重视,所以除了职能部门外一般还专门设置了项目管理部(项目管理委员会),项目管理部有专职的项目经理,公司业务里项目占比较大的比重,项目经理负责对整个项目的管理,包括成员工作安排,项目协调,项目成员考核等等。项目经理的上级是项目部经理(项目总监)。这种组织在IT公司比较常见。特别是做信息化建设的公司。

纯项目型组织如下图所示,公司的业务主要是接项目和做项目,项目经理负责把整个项目做好,权利比较集中,主要是一些专业承包公司,如装修公司、建筑承包公司等等。

}

??项目启动图片的设置有多种方式,但是通常情况下,都是用LaunchImage来管理的。具体的操作方式比较简单,但是一定要注意,当你设置LaunchImage作为启动图片时,一定不要忘记把Launch Screen File中的文字给删除,并且在运行程序之前,最好是把之前运行过的程序给删掉:

设置启动图片的细节.png

??项目配置完成以后,通常情况下,需要重新划分结构。在iOS开发中,有可供选择,最常见的架构是MVC,它在软件开发过程中有着广泛的应用。由于MVC本身不是特别完美,后来又衍生出了MVP和MVVM架构。在这里,我们按照MVVM架构的思想对项目目录进行重新划分。

??1、使用纯代码来搭建项目

// 如果命名空间获取失败,直接返回 // 根据传进来的控制器字符串获取与之对应的class(命名空间.子控制器的类名) // 将获取到的AnyClass转成具体的控制器类型 // 如果转类型失败,则直接返回 // 创建对应的控制器对象 // 设置子控制器的属性

??有一个细节需要注意,因为中间发布直播是一个按钮,并不需要创建与之对应的子控制器类,在采用常规方式搭建时,我们用一个并未创建的UIViewController作为占位就可以了。但是,在使用子控制器类对应的字符串方法搭建TabBar时,不能再用这个实际并未创建的UIViewController作为占位了,而是要用一个已经创建了的类作为占位,比如说我们这里使用了QFLiveViewController这个类。

??3、通过Json文件来初始化项目

??其实通过Json文件来初始化项目跟通过字符串来初始化项目本质上一样的,只不过这个字符串不是在创建子控制器的时候传递进来的,而是通过一个json文件来获取的(比如说来自服务器的json文件),它在创建的时候,也是需要现在项目中创建对应的类,然后再动态的加载:

// 通过json文件来初始化项目 // 通过json文件来初始化项目 // json序列化(这里要进行异常处理) // 遍历数组中的字典 // 获取子控制器对应的字符串名称 } // 从字典中取出来的数据是一个Any可选类型,需要现将其转换成String可选类型,之后才能传给自定义子控制器的函数 // 获取子控制器对应的title // 获取子控制器对应的背景图片名称 // 拿到对应的字符串儿,添加子控制器

??添加子控制器的代码不用改,只需要修改获取字符串的方式,然后再将从json文件中获取到的字符串传递给它就可以了。最后补充一点关于异常的知识点。如果在调用系统的某一个函数的过程中,该函数后面有一个throws,说明该函数会抛出异常,此时你需要对异常进行处理。在Swift中提供了三种处理异常的方式:

 ①、try方式:程序员手动捕捉异常,在真实的开发环境中用得很少;
 ②、try?方式:系统帮我们处理异常。如果该函数产生了异常,则返回nil;
 如果没有异常,则返回对应的对象。也就是说,该方式会返回一个可选类型,
 因此我们需要对结果进行安全校验,这个比较常用;
 ③、try!方式:直接告诉系统,该函数没有异常。但是,如果该函数真的产生了异常,
 那么程序会崩溃,类似于强制解包,操作起来非常的危险,一般不建议使用

??以前在开发的时候,使用得比较多的可能是纯代码,因为如果使用Storyboard,可能会因为界面过多而造成混乱。但是,实际上苹果幕后做了很多工作来推广Storyboard。在iOS 9中,苹果引入了Storyboard

??现在里面控制器非常多,是不是看起来很乱?不过不要紧,我们可以把它们拆分成单独的Storyboard文件。选中其中一个子控制器,然后点击菜单栏上面的Editor,之后选择Refactor to Storyboard。具体操作如下图所示:

??点击完Refactor to Storyboard之后会弹出一个对话框,给新的Storyboard文件取一个名字,然后点击保存就可以了:

??按照同样的方式,分别处理其它几个子控制器,占位用的ViewController暂时不用管。处理完之后,Main.storyboard文件中大概就是这个样子:

??现在看起来就非常简洁了,我们可以在不同的子控制器所对应的Storyboard文件中处理具体的问题。不过,需要说明的是,Storyboard Reference不支持iOS 8.0及其以下的版本。如果你希望支持iOS 8.0,最好是用纯代码来搭建。

??最后是进行一些细节的处理,设置子控制器tabBarItem的图片和标题。然后再来到QFMainViewController的viewDidLoad方法中,添加中间的发布按钮:

// 中间发布直播按钮懒加载
 // 添加中间的发布按钮
 // 设置中间按钮的图片
 // 设置按钮的位置(将发布直播的按钮添加到TabBar正中间)
 
??接下来,我们要监听发布直播按钮的点击。但是在此之前,我们先来补充一点便利构造函数的知识。


??根据给定的图片来创建一个按钮,像这种需求在项目中经常碰到,所以最好是单独给它抽取一个方法。以前在OC中,这种情况一般是给UIButton抽一个分类。但是,Swift中基本上没有分类这个概念。不过,我们依然可以给系统的类来增加分类方法。新建一个Swift File文件,名字可以随便取,但是最好取一个见名知意的名字。然后导入UIKit框架,给UIButton写一个extension扩展:

/// 类方法,根据给定的图片创建一个按钮(不是最好的选择) // 设置按钮的背景图片
??现在在外面你就可以通过UIButton调用类方法来创建按钮了。但是,这是OC喜欢干的事儿,它不是真正的Swift。在Swift中,创建对象一般都是使用构造函数,所以我们也应该用构造函数。


??在Swift中,要对系统类的构造函数进行扩充,一般是使用便利构造函数。用convenience修饰的构造函数叫做便利构造函数,它一般是写在extension里面,并且需要明确调用self.init()。下面我们就用便利构造函数来改造上面的代码:

// 设置按钮的背景图片
??现在我们在外面创建按钮时,可以直接使用按钮的便利构造函数了,直接将图片名作为参数传递进去,高亮背景图片因为没有,所以可以传空:

// 中间发布直播按钮懒加载
 // 添加中间的发布按钮
 // 设置按钮的位置(将发布直播的按钮添加到TabBar正中间)
 
??接下来是监听发布直播按钮的点击。来到添加发布直播按钮的方法中,调用addTarget(, action: , for: )方法,然后再给QFMainViewController写一个extension,专门用来处理事件的监听:

// 监听发布直播按钮的点击
instance)这个错误,解决的办法是在前面加上@objc属性。其实,事件监听本质上是发送消息,而发送消息是OC的特性。在OC中,发送消息的步骤是,先将方法包装成@SEL,然后再去类中查找方法列表,根据@SEL找到imp指针(也就是我们这个对应的函数指针),之后就是执行这个函数。如果在Swift中将函数声明成fileprivate,那么该函数不会被添加到方法列表中。但是,如果在前面再加上@objc属性,这个函数就会被添加到方法列表中。

}

版权声明:本文为博主原创文章,未经博主允许不得转载。 /xjbclz/article/details/

职能型组织结构主要适用承担内部项目,很少用于承担外部项目。项目经理主要起协调作用,没有足够的权力矿质项目的进展,对项目团队成员也没有完全的支配权力。适用与不确定性程度较低、所用技术表周规范、持续事件较短的小型项目,而不适用于环境变化较大、技术创新性很强的大型项目。因为环境的快速变化需要各职能部门的紧密配合。职能型组织结构不能满足这一要求。

项目经理的角色-项目协调员

产品经理是海外业务部对外的接口人

把客户需求提供给产品经理和项目经理,提交项目交付物给客户确认

根据销售需求和项目进度制定生产计划

是研发和其他部门对海外业务部的接口人

测试手机软件和同步软件,编写手机说明书

负责手机的颜色、材料和相关工艺

包装材料设计-说明书封面、光盘封面、包装盒设计等

负责手机整机质量,确定是否可以发布量产软件

根据项目进度和海外业务部的资材计划制定资材需求计划和生产计划

提供售后客服资料和解决产品售后问题

负责翻译手机中使用的字符串和确认项目交付物

每一个项目交付物都必须经过客户的确认,才可做为量产使用;

字库供应商、手机内置应用供应商和文字翻译供应商(说明书和同步软件)

在发布之前和各项目成员协商,确定切实可行的计划,不能为了计划而计划,如果不能实行,那制定了也没用。

}

我要回帖

更多关于 csdn是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信