随笔分类 - 软件工程
摘要:hi,我是熵减,见字如面。 在软件工程中,最终的价值交付,都是要通过软件的部署上线来完成的。 那如何将新的或改进的软件功能交付给用户,同时还要确保高质量、稳定性和用户体验,选择适当的部署策略变得至关重要。  近日,阿里在继年初3月份的1+6+N的战略变革的基础上,对持续建设和运营8年的中台的
阅读全文
摘要:hi,我是熵减,见字如面。 在现代的软件工程中,微服务或在客户端与服务端之间的信息传递的方式,比较常见的有三种架构设计的风格:RESTful、GraphQL和gRPC。 每一种模式,都有其特点和合适的使用场景,今天,我们主要来对三种风格做一个深入的理解和对比,以方便我们在做技术选型时,能够做出有效的
阅读全文
摘要:hi,我是熵减,见字如面。 微服务是一种软件架构风格,其旨在通过将应用程序拆分为小型、独立的服务,来增强应用程序的可伸缩性、可维护性和可测试性。 虽然微服务可以为软件开发提供许多好处,但它们并不总是适用于所有情况的最佳选择。 换句话说,微服务架构,也不是软件工程的银弹。 所以,技术团队再考虑是否使用
阅读全文
摘要:hi,我是熵减,见字如面。 在软件开发的中,你是否也遇到过类似的场景: 团队的目标是在1个月内,开发出一款新的社交媒体应用程序。由于时间比较紧,任务重,所以在开发的初期,方案设计、质量保障和安全性等上面,都是未能充分的考虑,以此来节省开发成本,并保持快速开发的节奏。 然而,当该程序在测试阶段,却出现
阅读全文
摘要:hi,我是熵减,见字如面。 在软件开发中,你是否做过性能的优化,譬如: 有一个图片处理的程序,其中包含一个函数用于对图片进行滤镜处理。该函数中包含两个部分:一个可并行化的部分和一个串行部分。可并行化的部分用于对图片的每个像素进行计算,而串行部分用于对处理后的图片进行保存操作。我们通过优化可并行化部分
阅读全文
摘要:hi,我是熵减,见字如面。 在世界读书日即将到来的前,以及借着ChatGPT的火热,各种AI大模型的创业东风,今天给大家推荐一些AI相关的图书,希望大家能从入门到放弃,找到适合自己的热爱。 本次推荐图书分三个档次,详细如下: 入门科普型 《给孩子的人工智能通识课》 是一本帮助孩子了解人工智能的科普型
阅读全文
摘要:hi,我是熵减,见字如面。 在软件开发中,你是否遇到过这种情况: 你正在开发一个新的软件,你已经完成了测试并发布了软件。然而,在用户开始使用软件之后,你开始接到了大量的错误报告。你发现用户遇到的问题并不是你测试过程中遇到的问题,这些问题可能是因为用户使用了不同的操作系统、浏览器或设备等原因。 这个案
阅读全文
摘要:hi,我是熵减,见字如面。 在软件开发中,你是否遇到过这种情况: 团队要开发一个简单的购物车应用,项目预期时间是2周工期。负责开发的工程师默认利用完整的2周时间来完成任务。在第一周,工程师会认为任务很轻松,有充足的时间来完成任务,所以会采取气定神闲的节奏。然而,在第二周,却发现了重要的设计缺陷,工程
阅读全文
摘要:hi,我是熵减,见字如面。 在软件开发中,你是否遇到过这种情况: 你正在开发一个购物车的功能,需要在用户添加商品到购物车时,将商品的信息存储到数据库中。你设计了一个简单的方法,如下所示: public void addToCart(Item item) { // 将商品信息存储到数据库中 } 在这个
阅读全文
摘要:hi,我是熵减,见字如面。 在软件项目中,你是否遇到过这种情况: 一个软件工程师,要开发一个系统功,这个系统需求有点复杂,需要新增多个模块,同时也需要和多个系统交互。工程师会按照自己的经验,做一个粗略的工期评估,同时在加上一点缓冲时间,从而得出一个开发工期的总时长。但最终的结果,可能会大大的超过预估
阅读全文
摘要:hi,我是熵减,见字如面。 在软件项目开发中,你是否遇到过这种情况: 你的项目进度落后了,你的老板或客户不满意,你的团队压力很大,你觉得需要增加一些人手来加快速度。但是,当你增加了新的成员后,你发现项目的进度并没有提高,反而变得更慢了,而且出现了更多的问题和冲突。 这就是布鲁克定律(Brook’s
阅读全文
摘要:hi,我是熵减,见字如面。 从事软件开发的人,都非常的清楚:大部分的软件工程不是一个人的英雄之旅,而是一项非常依赖团队的协作的、共同创造的系统性的工程。 在复杂的团队协作中,仅仅依赖软性的制度和流程规范,在很多的时候,可能不一定能很好的解决问题。在涉及到人的部分,就需要考虑到人们协作的职责结构,能否
阅读全文