构建之法阶段小记三

      本周已是学期的第十周,这周内通过书中第三章的介绍对如何成为一个合格的软件工程师及软件工程师在个体、团队中应具备的素养有了一些基本的了解。

      软件开发流程不光是团队的流程,还包括个人开发流程。书中以足球队做类比,阐明了一个非常重要的概念就是——软件团队是由个人组成的,在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人能力的衡量与发展在团队合作中也非常重要,书中也介绍了几种比较妥当的个人评价标准。

      软件工程师应该在不同阶段有以下几种成长:积累软件开发相关的知识,提升技术技能、积累问题领域的知识和经验、对通用的软件设计思想和软件工程思想的理解、提升职业技能、最终得到实际成果。绝大部分的软件工程师的工作成果都是可以公开的,个人参与的产品最终得用户评价如何、市占率如何、对用户有多大价值以及个人在其中起到什么作用都是非常重要的评价指标

      如何衡量软件开发的工作量和质量:a.项目/任务有多大?b.花了多少时间?c.质量如何?d.是否按时交付;

      团队对于个人的期望:1.交流2.说到做到3.接受团队赋予的角色并按角色要求工作4.全力投入团队的活动5.按照团队流程的要求工作6.准备7.理性地工作;

      软件工程师的职业发张:1.职业发展——考级之路:如计算机等级考试和全国计算机技术和软件专业技术资格考试以及一些公司自己的认证项目;

      2.职业成长——Steve McConnell版本:一个软件工程师需要具备一定的知识和能力,工程师还有职业成长级别;

      3.职业成长——大公司版本:大公司对于一个工程师有自己的判断方法;

      4.职业成长——自我评估:如何做一个CRUD;

      第三章以个人角度,诠释了软件工程师个人的能力发展及职业发展在行业中所起到的作用并介绍了几种评价方法。在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人在团队中也有独立的流程。书中以魔方为例,详细介绍了“技能”的概念,从技能的反面——解决问题来从本质上理解“技能”。提高自身技能就是通过不断的练习,把那些低层次的问题都解决了,变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题。从科研或者理论的高度上说,所有的“技能”都能总结成简单的“已经知道怎么做了”。作为学生,我们应该认清当前的自我水准及定下合理的成长目标,不应只是考虑参与所谓的高层次的“科研”,在懂得理论的基础上应当具备在实践中活用理论并加以改进以适应实际情况的能力。把低层次的问题解决了,最基础的操作都熟练了,根基打好,我们的能力自然也就提升了。

转载于:https://www.cnblogs.com/Mytheirage/p/6789705.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
Protobuf是一种高效的序列化协议,可以用于数据交换和数据存储。它的主要优势是大小小,速度快,可扩展性强。下面是使用Protobuf的一些小记: 1. 定义消息格式 首先,需要定义消息格式,以便Protobuf可以将数据序列化和反序列化。消息格式定义在.proto文件中,使用protobuf语言编写。例如,下面是一个简单的消息格式定义: ``` syntax = "proto3"; message Person { string name = 1; int32 age = 2; } ``` 这个消息格式定义了一个名为Person的消息,包含两个字段:name和age。 2. 生成代码 一旦消息格式定义好,就可以使用Protobuf编译器生成代码。编译器将根据消息格式定义生成相应的代码,包括消息类、序列化和反序列化方法等。可以使用以下命令生成代码: ``` protoc --java_out=. message.proto ``` 这将生成一个名为message.pb.java的Java类,该类包含Person消息的定义以及相关方法。 3. 序列化和反序列化 一旦生成了代码,就可以使用Protobuf序列化和反序列化数据。例如,下面是一个示例代码,将一个Person对象序列化为字节数组,并将其反序列化为另一个Person对象: ``` Person person = Person.newBuilder() .setName("Alice") .setAge(25) .build(); byte[] bytes = person.toByteArray(); Person deserializedPerson = Person.parseFrom(bytes); ``` 这个示例代码创建了一个Person对象,将其序列化为字节数组,然后将其反序列化为另一个Person对象。在这个过程中,Protobuf使用生成的代码执行序列化和反序列化操作。 以上是使用Protobuf的一些基本步骤和注意事项,希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值