- 作者:老汪软件技巧
- 发表时间: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~