《软件工程之美》打卡第三周,还有人不知道什么是AndroidX的吗

今天学习了宝玉老师的《软件工程之美》中的“15 | 风险管理:不能盲目乐观,凡事都应该有B计划”,以下是我的总结:

风险管理的重要性不容忽视,如果软件项目没有做风险管理,造成的后果轻则项目不能按时完成,重则造成无法挽回的经济损失,拼多多被“薅羊毛”事件就是风险管理不到位的典型案例。

应对风险的几个层次:

  • 被动应对:风险已经发生,造成了问题才被动应对;

  • 有备无患:事先制定好风险发生后的补救方案,但没有任何防范措施;

  • 防患于未然:对可能发生的风险作出防范,并把风险防范作为项目任务的一部分。

做好风险管理需要做好以下几点:

  1. 培养风险意识

不能盲目乐观,思考最坏的情形,提前做好Plan B。

  1. 管理风险

管理风险有四步:

2.1 风险识别

软件项目的风险有以下几类:

  • 项目风险:项目预算、进度、用户和需求等方面问题;

  • 人员风险:人员离职、人手不足等问题;

  • 技术风险:采用技术所可能带来的风险;

  • 商业风险:与市场、产品策略等有关商业风险。

可以按照上面的分类整理出自己的风险检查表。

2.2 风险量化

风险发生的概率和发生后后果的严重程度,概率大和后果严重的应该以优先级去重点考虑。

2.3 应对计划

1579766080774.png

一张图解释如何应对风险,我们可以根据实际情况来选择应对策略,减少可能的损失。

2.4 风险监控

要做好监控,有以下三点:

  • 第一要能对监控内容良好

  • 第二要设置阈值

  • 第三要有后续的报警和处理机制

这就就比如我们会监控线上版本的Crash率,设定告警的阈值,比如2%,超过这个阈值我们就告警,相关开发人员要及时处理线上的Crash,通过热更新解决Bug来将Crash率维持阈值以下。

这个主题其实开发人员感受可能不会很深,我们日常更多是基于需求去评估单个需求完成可能存在的风险,比如技术选型和人力成本这些方面去考量,但对项目整体来看,要把需求都变得可控,所以风险管理就很重要,如果前期评估出了风险,可以通过砍需求或者延长时间来降低风险。但对于开发人员如果能全局去培养自己的风险意识,这样能很大程度帮助团队一起规避不必要的风险,防患于未然。

第十八天


今天学习了宝玉老师的《软件工程之美》中的“16 | 怎样才能写好项目文档?”,以下是我的总结:

我个人是比较偏向写文档的,很多程序员不愿意写文档,无非就以下几个原因:

  1. 不知道怎么写

  2. 太忙没时间写或者懒得写

  3. 觉得文档无用,价值不高

从这篇文章学习的内容,更加坚定了我对写文档的重要性的态度:

  • 文档能够帮助自己理清思路

  • 方便未来的维护和交接,最明显的是新人可能更快的融入团队,减少口口相传

  • 团队更好的协作沟通

如何写好文档?

  1. 从模仿开始,参考别人是怎么写的

  2. 从简单开始,不要求一下子写大而全的文档

  3. 从粗到细,迭代更新

  4. 一图胜千言,能用图说明清楚的就不用文字,常用的有线框图、流程图、时序图、各种格式的截图等。

这一节我感受比较深,因为最近我也在帮助团队整理项目文档,因为我作为新人加入项目基本知道我缺什么东西,需要了解什么东西,如果之前有文档估计我可以更快融入团队和发挥自己的价值。

第十九天


今天学习了宝玉老师的《软件工程之美》中的“17 | 需求分析到底要分析什么
?怎么分析?
”,以下是我的总结:

这节课的信息量很大,需求分析说实话工程师参与的并不多,更多是产品经理将需求分析过后的翻译成我们能够理解的需求单。需求的重要性不用多说,只有真正理解用户的需求,我们才能做出触及用户内心诉求的产品。宝玉老师这节课提到了很多让我很受益的知识和观点,比如做需求分析的一些步骤:

  1. 收集需求
  • 头脑风暴

  • 用户调研

  • 竞品分析

  • 快速原型

  1. 分析需求
  • 表层需求:用户对解决问题的期望

  • 深层需求:用户的深层动机,诉求产生的原因

  • 底层需求:人性本能的需求

  1. 需求评估
  • 可行性:技术能否实现

  • 成本:人工成本、时间成本

  • 商业风险和收益:有没有商业的风险,收益是否合理

  • 紧急性与重要性:是不是用户迫切的需求

  • 评估其优先级:紧急重要四象限

  1. 需求设计

  2. 验证需求

在日常工作中,其实产品最终效果不明显很大程度就是没有做好需求分析,没有深入理解真实的用户需求,一种好的基于数据验证需求实践——AB Test,通过数据驱动来分析需求。

第二十天


今天学习了宝玉老师的《软件工程之美》中的“18 | 原型设计:如何用最小的代价完成产品特性?”,以下是我的总结:

原型设计经历了三个阶段:

  • 低保真原型设计

  • 中等保真原型设计

  • 高保真原型设计

目前原型设计已经从一种快速开发模式演进成了设计工具,产品经理可以低成本、高效率的做出软件原型,便于更好的确认产品需求。

**如何做好原型设计?**分为以下四个部分:

  • 分析:原型设计的目标是什么,搞清楚用户的需求

  • 设计:从信息架构和使用流程两个维度去考量

  • 实施:在设计的基础上通过原型工具进行界面搭建

  • 验证:产品经理反复验证流程,调整存在走不通或者使用不方便的地方进行调整。

选择合适的原型设计工具的几个考虑维度

  • 面向的平台:Web、桌面、手机;

  • 保真度:

  • 中等保真度还是高保真度;

  • 功能:是否满足你的要求;

  • 成本:价钱是否可以接受。

宝玉老师推荐了几款原型设计工具,可以结合自身的需求来选择:

  • Axure RP

  • 墨刀

  • Adobe XD

  • ProtoPie

  • Framer X

这节课内容更偏向产品设计,开发人员可能日常比较少参与原型设计,不过作为一个有追求的程序员,提升自己的产品设计能力也有助于我们用产品的视角来看待用户需求,也能更好的跟产品经理进行沟通协作。

  • 中等保真度还是高保真度;

  • 功能:是否满足你的要求;

  • 成本:价钱是否可以接受。

宝玉老师推荐了几款原型设计工具,可以结合自身的需求来选择:

  • Axure RP

  • 墨刀

  • Adobe XD

  • ProtoPie

  • Framer X

这节课内容更偏向产品设计,开发人员可能日常比较少参与原型设计,不过作为一个有追求的程序员,提升自己的产品设计能力也有助于我们用产品的视角来看待用户需求,也能更好的跟产品经理进行沟通协作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,下面是一个简单的 Android Studio 的打软件的示例代码: 首先,创建一个空的 Android Studio 项目。然后在 activity_main.xml 中添加以下代码: ```xml <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Welcome to Clock In App!" android:textAlignment="center" android:textSize="24sp" /> <Button android:id="@+id/clockInButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Clock In" /> <Button android:id="@+id/clockOutButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Clock Out" /> <TextView android:id="@+id/clockInTimeTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Clock In Time: " /> <TextView android:id="@+id/clockOutTimeTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Clock Out Time: " /> </LinearLayout> ``` 这个布局包括一个欢迎文本、一个打按钮、一个下班打按钮和两个文本视图用于显示打时间。 接下来,在 MainActivity.java 中添加以下代码: ```java public class MainActivity extends AppCompatActivity { private TextView clockInTimeTextView; private TextView clockOutTimeTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button clockInButton = findViewById(R.id.clockInButton); Button clockOutButton = findViewById(R.id.clockOutButton); clockInTimeTextView = findViewById(R.id.clockInTimeTextView); clockOutTimeTextView = findViewById(R.id.clockOutTimeTextView); clockInButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { clockIn(); } }); clockOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { clockOut(); } }); } private void clockIn() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentTime = sdf.format(new Date()); clockInTimeTextView.setText("Clock In Time: " + currentTime); } private void clockOut() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentTime = sdf.format(new Date()); clockOutTimeTextView.setText("Clock Out Time: " + currentTime); } } ``` 这个 MainActivity 类包括一个 clockIn 方法和一个 clockOut 方法,它们分别会在打按钮和下班打按钮被按下时调用。这些方法会获取当前时间并将其显示在相应的文本视图中。 现在,运行应用程序并测试它。当你点击“打”按钮时,应用程序会显示打时间。当你点击“下班打”按钮时,应用程序会显示下班打时间。 这只是一个简单的打应用程序示例。你可以根据自己的需求扩展它,例如添加一个数据库来保存打记录,或者添加一个定期提醒用户打的功能。 ### 回答2: 好的!下面是一个简单的打软件的实现思路。 1. 首先,在Android Studio中创建一个新的项目,命名为"打软件"。 2. 创建一个欢迎界面(WelcomeActivity),用于展示打软件的Logo和简要介绍。 3. 创建一个登录界面(LoginActivity),用于用户登录。可以使用用户名和密码的形式进行登录验证。可以使用数据库(如SQLite)存储用户的登录信息。 4. 创建一个主界面(MainActivity),用于展示用户的打记录和提供打功能。 - 在主界面中,可以使用一个RecyclerView来展示用户的打记录。创建一个打记录实体类(CheckIn)和一个自定义的适配器来绑定RecyclerView。 - 使用SharedPreferences来存储用户的打记录,每次用户打都将记录保存到SharedPreferences中。 - 在主界面中,可以添加一个打按钮,点击后获取当前时间,并将该时间添加到打记录中。 5. 创建一个设置界面(SettingActivity),用于设置打时间。 - 在设置界面中,可以使用一个TimePicker或DatePicker控件来选择打时间。 - 可以使用SharedPreferences来存储用户设置的打时间。 6. 添加导航栏(BottomNavigationView或DrawerLayout),在不同的界面之间进行切换。 7. 对于特定的功能,可以创建相应的界面和逻辑进行实现,例如修改密码、查看统计报表等。 8. 进行打提醒的设置。 - 使用AlarmManager类创建一个闹钟,设定每天指定时间触发提醒。 - 在接收闹钟触发的广播Receiver中,发送一条通知提醒用户进行打。 需要注意的是,以上仅为软件的简单实现思路,具体的实现细节还需要根据具体需求进行进一步开发和完善。希望对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值