• 作者:老汪软件技巧
  • 发表时间:2024-12-29 00:59
  • 浏览量:

我并不觉得代码如诗

有人说,代码如诗。

而我觉得,代码如戏,正如人生路上的每一出戏:

代码里也藏了太多的人情世故了。

跟对人很重要

面向对象的设计思维中,继承了一个强大的父类,也会为自己带来不一样的人生:

class Animal {
  eat() {
    // 动物会吃东西
  }
  sleep() {
    // 动物会睡觉
  }
}
class Human extends Animal {
  speak(what: string) {
    // 人类会说话
    console.log(what)
  }
}
class Cat extends Animal {
  miao() {
    // 喵~
  }
}

莱德投胎成了人类,于是他拥有了这些技能和本领:

而大脸猫就没这么运气好了,投胎成了个勇敢的猫咪,它的技能只有这些了:

所以,跟对人很重要。

只有背景雄厚的代码,才会有更大的力量。

技多不压身

这人啊,多的技能多少不一样,技能的作用不一样,人生就会不一样。

interface ICoder {
  coding(): void
}
interface IDriver {
  drive(): void
}
interface IBoss {
  playGolf(): void
}
class Human {
  speak() {
    // 说话
  }
}
class Worker extends Human implements ICoder, IDriver {
  coding(): void {
    // 学会了写代码
  }
  drive(): void {
    // 可以跑滴滴
  }
}
class Boss extends Human implements IBoss {
  playGolf(): void {
    //  学会了打高尔夫
  }
}

就好像我,只学会了写代码和开车,于是只能当个程序员,顺带跑一下滴滴:

而老板学会的技能,和我们不太一样:

会什么是我能决定的吗?打高尔夫是我等牛马学得会的吗?我等牛马有学的时间吗?

学会拒绝,人生更清爽

不懂拒绝的人,会活得很累。

function doSomething(material) {
  if (material.idcard == null) {
    console.log('你带上你的身份证再来')
    return
  }
  if (material.idcard.expireTime < new Date()) {
    console.log('身份证过期了')
    return
  }
  if (!material.relationship.mother.isValid()) {
    console.log('请先证明你妈是你妈')
    return;
  }
  // doSomething()
  console.log("好了,办完了")
}

为什么大家都想考编?上面的流程像不像某些办事大厅的流程?

程序员都知道使用 卫语句 来让代码更清爽,却没学会如何拒绝,特别是如何拒绝产品经理的需求。

优越条件在背景雄厚下不值一提

在当下社会下办事,如果自己没有一些优越的条件的话是很难的。

interface IHouse {
  getArea(): number
  getAddress(): string
}
interface ICar {
  getBrand(): string
}
interface IMoney {
  isRich(): boolean
}
// 朋友介绍高质量女朋友
function getGirlFriendextends IHouse, ICar, IMoney>(who: T) {
  // 判断这个人的各种条件是否符合高质量女朋友的要求
  return girl
}

如果没满足一些条件的标准,事情可能是很难办成的。因为你虽然满足了调用门槛,但还有一些条件的判断在等着你。

哪有什么代码如诗,代码里全是人生路上的那些人情世故_哪有什么代码如诗,代码里全是人生路上的那些人情世故_

甚至,可能完全不具备条件,事情直接都没办法发起。人家一看你都不提供这些条件,直接就给你拒绝执行了

不过更巧的是,任你条件再多,在绝对强大实力背景下依然不值一提:

class Human { }
class SmallGoal extends Human {
  assets = ['万达', 'xxxx', 'yyyy']
  getGoodFriend(): Human {
    // 自带找高质量女友的技能
    return girl;
  }
}

XXX: “我还需要人介绍高质量女朋友吗?”

做得越多,错得越多

很多生活上的事情,做得越多越乱,错得也更多。

学会给人生做任务分解,大目标化小目标,视线会越来越清晰,错误也会越来越少:

function getGirlFriend() {
  let money = 0
  money += Math.random() * 100
  if (money < 100) {
    throw new Error('Not enough money')
  } 
  let health = 0
  health += Math.random() * 100
  if (health < 100) {
    throw new Error('Not enough health')
  }
  return girl
}

费劲巴力的进行着各种事情,天天嚷嚷这要找女朋友,但每次说完后都可能会触发一些错误,达不成自己的目标,一旦失败就功亏一篑。

为什么不先制定好目标,计划好实现目标的步骤,然后将任务分解后,再沉浸式的去执行这些目标来达到最终的目的呢?

function getGirlFriend() {
  makeMoney()
  exercise()
  return girl
}
function makeMoney() {
  let money = 0
  money += Math.random() * 100
  if (money < 100) {
    makeMoney()
  }
  console.log('OK!')
}
function exercise() {
  let health = 0
  health += Math.random() * 100
  if (health < 100) {
    exercise()
    return
  }
  console.log('OK!')
}

人生在世,规矩很重要

俗话说,无规矩不成方圆。代码也一样。

class 违章{
  list = []
  处理违章(){
    console.log("违章处理完成")
  }
  添加违章(item){
    list.add(item)
  }
  驾照是否吊销(){
    return list.length > 3
  }
  吊销驾照(){
    if(list.length <= 4){
      // 无需吊销 教育即可
      return
    }
    // 执行吊销
  }
}

没立好规矩,办事过程不透明,容易造成更多的问题。

为什么不先通过常量声明来消灭没有规矩的魔法值呢?

class 违章{
  // 先定规矩
  readonly 违章宽限次数 = 3
  list = []
  处理违章(){
    console.log("违章处理完成")
  }
  添加违章(item){
    list.add(item)
  }
  驾照是否吊销(){
    return list.length > 违章宽限次数
  }
  吊销驾照(){
    if(list.length <= 违章宽限次数){
      // 无需吊销 教育即可
      return
    }
    // 执行吊销
  }
}

周末愉快

本来也报名参加了掘金的2024作者投票来着,一看这么多牛逼的大佬,又一看第一名是个MacBook M4 Pro,再一看大佬们粉丝这么多,就没转发链接拉票了。

那就周末水文来给大伙助助兴吧,祝大家周末愉快、拉票愉快~

Bye~


上一条查看详情 +为什么必须把代码写到极致?
下一条 查看详情 +没有了