EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

摘要

本文是 2023 年南京大学软件学院推免经验分享内容。

南软学硕基本信息

2024 年招生 学术硕士(软件工程 083500) 专业硕士(软件工程 085405,原电子信息)
学制 三年 两年(待定)
学费 5000 元/年 20000 元/年
招收总人数(考研+保研) 17(10 个保研) 227
住宿条件 2023 级提供鼓楼(23 级在陶一)或浦口宿舍 不提供宿舍
奖学金 奖学金比较多 奖学金比较少(而且基数大)
专业认可度 考公考编可选岗位较多 电子信息可选岗位受限,085405 和 083500 几乎相同
转博政策 2+4,硕士成果计入毕业要求 2+4,硕士成果不计入毕业要求

登录南京大学研招网查看当年权威信息:https://yzb.nju.edu.cn/main.htm

阅读全文 »

原文链接:通俗易懂 强一致性、弱一致性、最终一致性、读写一致性、单调读、因果一致性 的区别与联系 - 知乎 (zhihu.com)

提到分布式架构就一定绕不开“一致性”问题,而“一致性”其实又包含了数据一致性事务一致性两种情况,本文主要讨论数据一致性(事务一致性指 ACID)。

复制是导致出现数据一致性问题的唯一原因。

如果只用一台数据库来处理所有的写入和读取请求,就一定不存在数据一致性的问题。 但在中大型项目中,我们却经常需要将一份数据存储在超过一台数据库中(即复制),原因有三:

  1. 即使一部分数据库出现故障,系统也能正常工作(高可用)
  2. 使数据与用户在地理上接近(降低延迟)
  3. 扩展可以处理读请求的机器数量(可扩展性、提高读取吞吐量)
阅读全文 »

本文主要内容来自 SpriCoder 的博客,更换了更清晰的图片并根据新的课程设计做了补充和修正。

再读《没有银弹》

软件开发有很多困难,但是本质难题是:

  1. 不可见性:软件项目是一个逻辑实体
  2. 复杂性:实体数量众多
  3. 可变性
  4. 一致性

进一步分析:

阅读全文 »

本文主要内容来自 SpriCoder 的博客,更换了更清晰的图片并根据新的课程设计做了补充和修正。

引入

  1. 软件在改变(定义?颠覆?)我们的世界
  2. 软件自身的变化:
    1. 规模
    2. 比例

软件危机:四大本质难题

《人月神话》软件的四大本质困难和挑战: 1. 不可见性:软件项目是一个逻辑实体 2. 复杂性:实体数量众多 3. 可变性 4. 一致性

阅读全文 »

课程 MOOC:人机交互与用户体验设计。

本文主要内容来自 SpriCoder 的博客,更换了更清晰的图片并根据新的课程设计做了补充和修正。

什么是人机交互 Human-Computer Interaction

HCI is a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them

——ACM SIGCHI
  1. HCI 是一门涉及人类使用的交互式计算系统的设计、评估和实施以及围绕它们的主要现象的研究的学科
  2. 信息技术发展中交互的重要性:让信息技术的使用变得更自然、更便捷、更透明!
  3. 为什么要考虑用户?信息发展趋势
    1. 用户:热爱技术的专业人员 \(\to\) 缺乏耐心的消费者
    2. 场景:更多样的终端和任务、更频繁的人机对话
    3. 人机交互能够让计算机更懂“人”,让人机对话更加“自然”
阅读全文 »

\[ \def\po{\mathsf{\textcolor{\red}{po}}} \def\so{\mathsf{\textcolor{\purple}{so}}} \def\wr{\mathsf{\textcolor{\green}{wr}}} \def\co{\mathsf{\textcolor{\orange}{co}}} \def\Swap{\mathsf{Swap}} \def\read{\mathsf{read}} \def\write{\mathsf{write}} \]

摘要

现代应用程序,如社交网络系统和电子商务平台,以大规模数据库为核心,用于存储和检索数据。对数据库的访问通常封装在事务中,允许对共享数据进行的计算与其他并发计算隔离,并具有容错性。现代数据库以性能为代价来交换隔离程度。隔离级别越低,数据库允许表现出的行为就越多,而开发人员需要确保他们的应用程序能够容忍这些行为。

在这项工作中,我们提出了一种基于动态偏序约减的无状态模型检查算法,用于研究依赖于多种常见弱隔离级别的应用程序的正确性,包括读已提交、因果一致性、快照隔离和可串行化。我们展示了这些算法在所有情况下都是完备的、正确的和最优的,并且在所有情况下都具有多项式内存消耗。我们报告了这些算法在 Java Pathfinder 环境中的实现,应用于分布式系统和数据库文献中的一些具有挑战性的应用程序。

作者:

阅读全文 »

问题背景

今天早晨发现手机上的 Microsoft TODO 软件被退出登录,并且使用密码(passwd0001)登录总显示“密码错误”,目前没有找到原因。在尝试重置密码(如 passwd0002)后,希望将密码更改为原密码(passwd0001)。修改密码时遇到了如提示:“使用了旧密码。为了保护帐户,请选择一个新密码。”

解决方案

在上述问题中,微软最多记录当前账户最近的 5 个密码。依次将密码修改为 passwd0003passwd0004passwd0005passwd0006 后,即可再将密码修改为 passwd0001

阅读全文 »

3 月 14 日下午两点三刻,当代最伟大的思想家停止思想了。让他一个人留在房里还不到两分钟,当我们进去的时候,便发现他在安乐椅上安静地睡着了——但已经永远地睡着了。

这个人的逝世,对于欧美战斗的无产阶级,对于历史科学,都是不可估量的损失。这位巨人逝世以后所形成的空白,不久就会使人感觉到。

正像达尔文发现有机界的发展规律一样,马克思发现了人类历史的发展规律,即历来为繁芜丛杂的意识形态所掩盖着的一个简单事实:人们首先必须吃、喝、住、穿,然后才能从事政治、科学、艺术、宗教等等;所以,直接的物质的生活资料的生产,从而一个民族或一个时代的一定的经济发展阶段,便构成基础,人们的国家设施、法的观点、艺术以至宗教观念,就是从这个基础上发展起来的,因而,也必须由这个基础来解释,而不是像过去那样做得相反。

不仅如此。马克思还发现了现代资本主义生产方式和它所产生的资产阶级社会的特殊的运动规律。由于剩余价值的发现,这里就豁然开朗了,而先前无论资产阶级经济学家或者社会主义批评家所做的一切研究都只是在黑暗中摸索。

一生中能有这样两个发现,该是很够了。即使只能作出一个这样的发现,也已经是幸福的了。但是马克思在他所研究的每一个领域,甚至在数学领域,都有独到的发现,这样的领域是很多的,而且其中任何一个领域他都不是浅尝辄止。

阅读全文 »

历史唯物主义的研究范畴

萧前指出:运用唯物主义和辩证法,探讨社会历史的本质和一般规律的科学理论,就是历史唯物主义。1

考虑到本文的读者大多数了解中国历史和西方历史,特别是中国近现代史,本文不再着重列举批判已经从教材上消失的种种唯心主义历史观和别有用心的历史虚无主义,而将重点放在对经典理论的详细解读,以期引导读者重新思考在课堂和教材当中所学得的历史唯物主义原理,并避免因为对历史规律认识失真而在实践中出现“摸着石头过河”的窘境。

为了使读者直观理解历史唯物主义原理的研究范畴,下面列举了几个经典的历史唯物主义原理结论:

  1. 社会存在决定社会意识
  2. 劳动 shi
  3. 生产力决定生产关系
  4. 经济基础决定上层建筑
  5. 人民史观:人民群众是历史的创造者,“时势造英雄”
  6. 科技观:科学技术是“第一生产力”
阅读全文 »

本文主要内容来自 SpriCoder 的博客,更换了更清晰的图片并根据新的课程设计做了补充和修正。

课程动机

  1. 核心课程:唯一一门系统讲解软件开发管理的课程
  2. 梳理如下的概念
    1. 软件项目管理
    2. 软件生命过程
    3. 软件过程
    4. 软件过程管理
    5. 敏捷软件开发
    6. CMM/CMMI
    7. 瀑布模型
  3. 未来可能需要的部分
    1. DevOps
    2. SRE

软件工程究竟是什么?

阅读全文 »