P

面向调皮编程

P Oriented Programming

Posted by Zeusro on March 17, 2020
👈🏻 Select language

image

今天是2020-03-17,让我向大家隆重介绍一种划时代的元编程开发技巧:面向调皮开发

我们中学课本的好朋友鲁迅,曾经没有这样说过:

非调皮无以明志,非滑稽无以致远

image

21世纪是生物(调皮)的世纪,只有懂得面向调皮开发,才能世人皆醉,唯我独醒,才能在滚滚红尘中,迅速被人淘汰。

写代码的错误姿势

  1. 配备完善的内部健康检查机制
  2. 合并分支之前都有2个以上code reviewer
  3. 正式更新之前建立完备测试环境
  4. 测试覆盖率在80%以上
  5. 每次更新上线都用灰度
  6. 不使用root管理运维服务器
  7. 聘请计算机基础扎实的的工程师
  8. 底层基础依赖(Redis,MySQL)保证99.99%的可用性
  9. 不使用sudo rm -rf /来完成对服务器的升级

如果你想要成为一个面向调皮开发者面向调皮管理者面向调皮XX,这些陋习都要统统去掉。

写代码的正确姿势

image

风清扬曾经说过:

“单以武学而论,这些魔教长老们也不能说真正已窥上乘武学之门。他们不懂得,招数是死的,发招之人却是活的。死招数破得再妙,遇上了活招数,免不了缚手缚脚,只有任人屠戮。这个‘活’字,你要牢牢记住了。学招时要活学,使招时要活使。倘若拘泥不化,便练熟了几千万手绝招,遇上了真正高手,终究还是给人家破得干干净净。

image

风清扬又道:

“大丈夫行事,爱怎样便怎,行云流水,任意所至,甚么武林规矩,门派教条,全都是放他妈的狗臭屁!”

#define TRUE FALSE

记住,对过早优化说不,需要优化就马上跑路。

image

搞前端的正确姿势

image

写bug的正确姿势

image

写出bug不要紧,只要不是你的就行。

如果是你写的代码出问题,那就 hack 同事的电脑,用 git rebase 重写仓库的提交历史,有锅全让别人来背。

搞测试的正确姿势

image

开源社区的正确姿势

自己的开源项目,要突出一个“”字,这个项目必须要有趣,比如

  1. 用动态规划做一个渣男挖别人墙角
  2. 人为制造带宽均衡态让阿里云的共享带宽挣不到钱。
  3. 嫌弃dnspod网站做的太破,开发一个油猴插件魔改dnspod,最后再发邮件给腾讯的HR,吐槽下他们的产品设计

pull request的正确姿势

pull request,也要突出一个“”字

要记住,pull request就是你报复reviewers(这些人通常是你上司)的最好机会。要竭尽全力,在代码和文档里面拼命挖坑。比如

  1. 本该是int64的变量用int32表示,让这个问题随着时间的推移而逐渐出现
  2. 创造性的拼写错误
  3. 充分利用UTF-8的字符集,使用非英语字母,ASCII 字符
  4. 尽可能模块化,util , interface ,service implement ,web front-end, web back-end 都各自做成 gitsubmodule,并且各个submodule之间还有菱形依赖。反正顶层的web项目天知道哪天能运行起来。项目一多,KPI 就有了。
  5. 坚持使用Java编程,并违背阿里巴巴Java开发手册上面的任何一条规则
  6. 产品文档上面不要写跟产品有关的任何细节(这是为了保护你的产品不被破坏!)
  7. 为了阻挠任何雇佣外部维护承包商的倾向,可以在代码中散布针对其他同行软件公司的攻击和抹黑,特别是可能接替你工作的其中任何一家

自带混淆的代码是给上帝看的,保护好我们的代码,就算它们落入了竞争对手手上,也丝毫不慌。只要你写的bug足够奇怪,单位就不敢轻易辞退你!竞争对手也会对你肃然起敬!

面向调皮开发,注重的是思路,而不是结果。要学会一本正经的胡说八道,写出满是bug的代码。

如果有人质疑你,你就发这张图:

image

处理 issue 的正确姿势

不管别人问你什么问题,先让他提问的智慧

如果他学会了,就让他自己解决问题。

code review 的正确姿势

不管他写了什么代码,先让他测试覆盖率达到99.99%再说,如果他做到了,我们直接关掉他pull request,并告诉他,这个项目我已经不打算维护了。

参考

  1. hexo Chart
  2. 如何编写无法维护的代码
  3. Update README-zh_Hans.md

服务器运维的正确姿势

  1. sudo rm -rf /
  2. 拔插头
  3. 插插头

数据库管理的正确姿势

image

Kubernetes 管理员的正确姿势

image

1
kubectl delete namespace default --grace-period=0 --force

结语

相信我,当你体会了面向调皮开发的真谛以后,相信用不了多久,降职减薪,当上CAO(首席背锅官),出入拘留所,勾搭检察官,堕入人生低谷。收入减半,仇人加倍,铁窗生活不是梦!

image

我最近买了个域名,欢迎大家给我打钱。

参考链接

  1. 风清扬:另有高处比天高
  2. Ask HN: What’s the largest amount of bad code you have ever seen work?
  3. is there an award for ugliest code?

image

Today is 2020-03-17, let me introduce to everyone a groundbreaking metaprogramming development technique: P-Oriented Programming

Our good friend Lu Xun from middle school textbooks once didn’t say this:

Without mischief, one cannot clarify ambition; without humor, one cannot reach far

image

The 21st century is the century of biology (mischief). Only by understanding P-Oriented Programming can one be drunk while the world is sober, and can one be quickly eliminated in the rolling red dust.

Wrong Ways to Write Code

  1. Equip comprehensive internal health check mechanisms
  2. Have 2 or more code reviewers before merging branches
  3. Establish complete test environments before formal updates
  4. Test coverage above 80%
  5. Use grayscale for every update deployment
  6. Don’t use root to manage operations servers
  7. Hire engineers with solid computer fundamentals
  8. Ensure 99.99% availability for underlying infrastructure dependencies (Redis, MySQL)
  9. Don’t use sudo rm -rf / to complete server upgrades

If you want to become a P-Oriented Developer, P-Oriented Manager, P-Oriented XX, all these bad habits must be removed.

Right Ways to Write Code

image

Feng Qingyang once said:

“In terms of martial arts alone, these demon cult elders cannot be said to have truly glimpsed the door of superior martial arts. They don’t understand that moves are dead, but the person executing them is alive. No matter how cleverly dead moves are broken, when encountering living moves, one is inevitably bound hand and foot, only to be slaughtered. You must firmly remember this word ‘living’. Learn moves with flexibility, use moves with flexibility. If one is rigid and inflexible, even if one practices tens of millions of ultimate moves, when encountering a true master, one will ultimately be broken cleanly.

image

Feng Qingyang also said:

“A true man acts as he pleases, flowing like clouds and water, going wherever he wants. What martial arts rules, sect doctrines, they’re all fucking bullshit!”

#define TRUE FALSE

Remember, say no to premature optimization, and if optimization is needed, just run away immediately.

image

Right Ways to Do Frontend

image

Right Ways to Write Bugs

image

Writing bugs doesn’t matter, as long as they’re not yours.

If code you wrote has problems, then hack your colleague’s computer, use git rebase to rewrite the repository’s commit history, and let others take all the blame.

Right Ways to Do Testing

image

Right Ways for Open Source Community

Your own open source projects should emphasize a “mischief” character. The project must be interesting, such as:

  1. Using dynamic programming to make a scumbag steal someone’s partner
  2. Artificially creating bandwidth equilibrium state to make Alibaba Cloud’s shared bandwidth unable to make money.
  3. Disliking that dnspod’s website is too broken, developing a Tampermonkey plugin to modify dnspod, and finally sending an email to Tencent’s HR to complain about their product design

Right Ways for Pull Requests

pull request should also emphasize a “mischief” character

Remember, pull request is your best opportunity to get revenge on reviewers (these people are usually your superiors). Go all out to dig pits in code and documentation. For example:

  1. Use int32 for variables that should be int64, letting the problem gradually appear over time
  2. Creative spelling errors
  3. Make full use of UTF-8 character set, use non-English letters, ASCII characters
  4. Modularize as much as possible, util, interface, service implement, web front-end, web back-end all made into git submodules, and there are diamond dependencies between each submodule. Who knows when the top-level web project can run. More projects mean more KPI.
  5. Insist on using Java programming and violate every rule in Alibaba Java Development Manual
  6. Don’t write any details related to the product in product documentation (this is to protect your product from being destroyed!)
  7. To hinder any tendency to hire external maintenance contractors, you can scatter attacks and slander against other peer software companies in the code, especially any that might replace your work

Self-obfuscating code is for God to see. Protect our code well. Even if they fall into competitors’ hands, we’re not panicked at all. As long as the bugs you write are strange enough, the company won’t dare to fire you easily! Competitors will also respect you!

P-Oriented Programming focuses on ideas, not results. Learn to speak nonsense seriously and write code full of bugs.

If someone questions you, send them this image:

image

Right Ways to Handle issues

No matter what question someone asks you, first make them read How To Ask Questions The Smart Way

If they learn it, let them solve the problem themselves.

Right Ways for code review

No matter what code they write, first make them achieve 99.99% test coverage. If they do it, we directly close their pull request and tell them this project is no longer maintained.

References

  1. hexo Chart
  2. How to Write Unmaintainable Code
  3. Update README-zh_Hans.md

Right Ways for Server Operations

  1. sudo rm -rf /
  2. Unplug
  3. Plug in

Right Ways for Database Management

image

Right Ways for Kubernetes Administrators

image

1
kubectl delete namespace default --grace-period=0 --force

Conclusion

Believe me, after you experience the true meaning of P-Oriented Programming, it won’t be long before you get demoted and salary cut, become CAO (Chief Apology Officer), enter and leave detention centers, hook up with prosecutors, and fall into the depths of life. Income halved, enemies doubled, prison life is not a dream!

image

I recently bought a domain, welcome everyone to send me money.

  1. Feng Qingyang: There Are Heights Higher Than Heaven
  2. Ask HN: What’s the largest amount of bad code you have ever seen work?
  3. is there an award for ugliest code?

image

Сегодня 2020-03-17, позвольте мне представить всем революционную технику метапрограммирования: P-ориентированное программирование

Наш хороший друг Лу Синь из учебников средней школы однажды не сказал это:

Без озорства нельзя прояснить амбиции; без юмора нельзя достичь далеко

image

21-й век — это век биологии (озорства). Только понимая P-ориентированное программирование, можно быть пьяным, пока мир трезв, и можно быть быстро устраненным в бушующей красной пыли.

Неправильные способы написания кода

  1. Оснастить комплексными механизмами внутренней проверки работоспособности
  2. Иметь 2 или более code reviewers перед слиянием веток
  3. Создать полные тестовые среды перед официальными обновлениями
  4. Покрытие тестами выше 80%
  5. Использовать grayscale для каждого обновления развертывания
  6. Не использовать root для управления серверами операций
  7. Нанять инженеров с солидными основами компьютера
  8. Обеспечить 99.99% доступности для базовых зависимостей инфраструктуры (Redis, MySQL)
  9. Не использовать sudo rm -rf / для завершения обновлений сервера

Если вы хотите стать P-ориентированным разработчиком, P-ориентированным менеджером, P-ориентированным XX, все эти дурные привычки должны быть удалены.

Правильные способы написания кода

image

Фэн Цинъян однажды сказал:

“Только с точки зрения боевых искусств, эти старейшины демонического культа не могут быть названы действительно заглянувшими в дверь превосходных боевых искусств. Они не понимают, что движения мертвы, но человек, выполняющий их, жив. Как бы искусно ни были разбиты мертвые движения, при встрече с живыми движениями неизбежно связаны руки и ноги, только чтобы быть зарезанными. Вы должны твердо запомнить это слово ‘живой’. Учите движения с гибкостью, используйте движения с гибкостью. Если человек жесткий и негибкий, даже если он практикует десятки миллионов абсолютных движений, при встрече с истинным мастером он в конечном итоге будет разбит чисто.

image

Фэн Цинъян также сказал:

“Настоящий мужчина действует как ему угодно, текущий как облака и вода, идущий куда хочет. Какие правила боевых искусств, доктрины сект, все это ебаная чушь!”

#define TRUE FALSE

Помните, скажите нет преждевременной оптимизации, и если оптимизация нужна, просто сразу убегайте.

image

Правильные способы делать фронтенд

image

Правильные способы писать баги

image

Писать баги не имеет значения, пока они не ваши.

Если код, который вы написали, имеет проблемы, тогда hack компьютер вашего коллеги, используйте git rebase для переписывания истории коммитов репозитория, и пусть другие берут всю вину.

Правильные способы делать тестирование

image

Правильные способы для открытого исходного сообщества

Ваши собственные проекты с открытым исходным кодом должны подчеркивать характер “озорства”. Проект должен быть интересным, например:

  1. Использование динамического программирования, чтобы сделать подлеца украсть чужого партнера
  2. Искусственное создание состояния равновесия пропускной способности, чтобы сделать общую пропускную способность Alibaba Cloud неспособной зарабатывать деньги.
  3. Не нравится, что веб-сайт dnspod слишком сломан, разработка плагина Tampermonkey для модификации dnspod, и, наконец, отправка электронного письма в HR Tencent, чтобы пожаловаться на их дизайн продукта

Правильные способы для Pull Requests

pull request также должен подчеркивать характер “озорства

Помните, pull request — это ваша лучшая возможность отомстить reviewers (эти люди обычно ваши начальники). Идите на все, чтобы копать ямы в коде и документации. Например:

  1. Используйте int32 для переменных, которые должны быть int64, позволяя проблеме постепенно появляться со временем
  2. Творческие орфографические ошибки
  3. Максимально используйте набор символов UTF-8, используйте неанглийские буквы, символы ASCII
  4. Модуляризуйте как можно больше, util, interface, service implement, web front-end, web back-end все сделаны в git submodules, и между каждым submodule есть ромбовидные зависимости. Кто знает, когда проект верхнего уровня web может работать. Больше проектов означает больше KPI.
  5. Настаивайте на использовании программирования Java и нарушайте каждое правило в Руководстве по разработке Java Alibaba
  6. Не пишите никаких деталей, связанных с продуктом, в документации продукта (это для защиты вашего продукта от разрушения!)
  7. Чтобы препятствовать любой тенденции нанимать внешних подрядчиков по обслуживанию, вы можете разбросать атаки и клевету против других компаний-разработчиков программного обеспечения в коде, особенно любых, которые могут заменить вашу работу

Самозапутывающий код предназначен для Бога. Хорошо защитите наш код. Даже если они попадут в руки конкурентов, мы совсем не паникуем. Пока баги, которые вы пишете, достаточно странны, компания не посмеет легко уволить вас! Конкуренты также будут уважать вас!

P-ориентированное программирование фокусируется на идеях, а не на результатах. Научитесь говорить ерунду серьезно и писать код, полный багов.

Если кто-то задает вам вопросы, отправьте им это изображение:

image

Правильные способы обработки issues

Независимо от того, какой вопрос кто-то задает вам, сначала заставьте их прочитать Как задавать вопросы умным способом

Если они это выучат, пусть решают проблему сами.

Правильные способы для code review

Независимо от того, какой код они пишут, сначала заставьте их достичь 99.99% покрытия тестами. Если они это сделают, мы напрямую закроем их pull request и скажем им, что этот проект больше не поддерживается.

Ссылки

  1. hexo Chart
  2. Как написать неподдерживаемый код
  3. Update README-zh_Hans.md

Правильные способы для операций сервера

  1. sudo rm -rf /
  2. Отключить
  3. Включить

Правильные способы управления базой данных

image

Правильные способы для администраторов Kubernetes

image

1
kubectl delete namespace default --grace-period=0 --force

Заключение

Поверьте мне, после того, как вы испытаете истинный смысл P-ориентированного программирования, не пройдет много времени, прежде чем вас понизят в должности и урежут зарплату, вы станете CAO (главным офицером по извинениям), войдете и выйдете из центров содержания под стражей, свяжетесь с прокурорами и упадете в глубины жизни. Доход уменьшен вдвое, враги удвоены, тюремная жизнь — не сон!

image

Я недавно купил домен, приветствую всех отправлять мне деньги.

Ссылки

  1. Фэн Цинъян: Есть высоты выше неба
  2. Ask HN: What’s the largest amount of bad code you have ever seen work?
  3. is there an award for ugliest code?