42

开发经验漫谈 – 如何写出更好的代码

 6 years ago
source link: http://blog.7rule.com/2018/07/06/dev-exp-best-coding.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

这几期和大家分享了我自己在开发时的一些经验,这次想说说如何写出更好的代码。

目标

我们写代码,都是为了完成某个功能,为某个系统服务。我个人在这方面的目标是:要做出10年都能稳定运行的系统。

如何做

如果想做到这一点,我觉得最重要的是要做到从整体去看待问题,具体来说:

  1. 系统运行都需要哪些环境,如服务器、数据库、机房、网络等。
  2. 系统在运行时,会遇到哪些问题。
  3. 如何更好地设计系统,层次清晰。
  4. 代码清晰易懂。

系统运行时会遇到的问题

我经常听到某些编程同学说:这是个运维方面的问题,不需要我们做。但我认为恰恰相反,通常就是这些所谓的运维方面的问题,会决定你的系统是否能够稳定运行10年。

正是前几天,我和一个公司高级别的技术同学沟通,他的一个观点我特别的认同:真正评价一个系统好坏的标准,性能高低不是最重要的,可运维性才是。

这里先来说说我觉得需要掌握的运维知识:

运营商和机房

国内的运营商,最重要的就是电信和联通,这些年移动有所增加,但也还比不上前面两个。

按照我之前的经验,一个用户服务,6 - 7成的用户走电信线路,3成联通线路,其余各种小运营商线路。

那么你的服务如果想要用户体验好,至少需要部署在电信和联通两个线路的机房。

有人说,我们有多线机房。也可以啊,但是为了你的服务可靠性考虑,你也需要至少两个吧,否则一个挂了服务就全挂了。

那么再说两个机房的选择,我认为在同城选择两个是最好的,当然这个城市也要可靠,比如北京、上海这种大城市就会可靠很多。

为什么呢?

是因为通常我们都会有存储的需求,就拿mysql举例:你为了保证性能和数据的一致性,通常会在访问量较高的电信机房配置主库,联通机房配置从库。而同城间的网络传输更加可靠,你的服务也会更加可靠。

所以,运营商和部署机房的选择,十分的重要。

机房间的异地多活问题

上面提到的mysql的那个例子,试想一下,如果电信机房挂了,我们把服务切到联通,但是联通的mysql是从库只读,那么服务有问题啊。

所以在你的系统设计中,异地多活这个问题我觉得是一定要考虑进去的。你的解决方案并不能仅仅只是可用,而是要好用才行。

服务器选型

我之前有过这样一个经历:服务扩容,我在新机器上部署后,发现性能不如老机器。

经过多方排查,最终定位发现新机器和老机器不是同一厂商生产的,最终推送公司测试发现新机器厂商的这批机器存在质量问题,所以后来有段时间我们申请机器时,会特意提出要求不使用这个厂商的机器。

新的服务平台的选型

最早我们的服务直接部署在物理机上,后来公司大推虚拟化,到现在也尝试部署在容器服务中。

我想说的是,你把服务部署在哪里,你还是要了解那个平台的相关知识的。就比如容器吧,我觉得并不是只会使用就行了,还要尽可能多的了解它的相关知识,明白可能存在的问题,这样才能有助于你做出更好地决策。

运维问题总结


Recommend

  • 76
    • 掘金 juejin.im 6 years ago
    • Cache

    [译] 如何写出更好的 React 代码?

    原文地址:How To Write Better Code In React 原文作者:Rajat S 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:jonjia 校对者:jasonxia23 老教授 写出更好

  • 76

    这几期和大家分享下我自己在开发时的一些经验,这次来说说关于Git在开发流程中的运用。 目的 保持提交历史整洁,俗称的一条线提交。 让项目代码有迹可循,提供清晰的开发历程,亦称:取其精华,去其...

  • 52
    • 掘金 juejin.im 6 years ago
    • Cache

    【译】如何写出更好的 React 代码

    本文翻译自:blog.bitsrc.io/how-to-writ… 如何写出更好的 React 代码 9个有用的小技巧帮助您在React中编写更好的代码:使用Linting,propTypes,PureComponent等。 React使得创建交互式UI

  • 7

    开发经验漫谈 -- 如何写出更好的代码 Jul 6, 2018 这几期和大家分享了我自己在开发时的一些经验,这次想说说如何写出更好的代码。 我们写代码,都是为了完成某个功能,为某个系统服务。我个人在这方面...

  • 14

    开发经验漫谈 -- Git在开发流程中的运用 Jun 30, 2018 这几期和大家分享下我自己在开发时的一些经验,这次来说说关于Git在开发流程中的运用。 保持提交历史整洁,俗称的一条线提交。 ...

  • 9
    • blog.7rule.com 4 years ago
    • Cache

    开发经验漫谈 -- 代码规范

    这几期想和大家分享下我自己在开发时的一些经验,这次来说说关于代码规范。 什么是代码规范 我理解的代码规范,是一个标准,让写代码的人按照这个标准来开发。 例如php的psr1(https://www.php-fig.org/psr/psr-1/)和psr2(https://...

  • 26

    怎么样写出更好、也更简短的源码分析书¶ 在刚开始撰写《Redis 设计与实现》的时候, 我的其中一个目标就是希望这本书在足够有用的情...

  • 4
    • www.androidchina.net 3 years ago
    • Cache

    程序员如何写出更好的代码

    程序员如何写出更好的代码 – Android开发中文站 你的位置:Android开发中文站 > 热点资讯 > 程序员如何写出更好的代码...

  • 2

    职场新人兼新手程序员斗胆开了新坑「如何写出更好的程序」,所见所得都是来自实际写代码时自己的思考,且已脱敏。这一系列不包含任何复杂的技术,也不包含任何难懂的代码。只是将核心问题暴露出来,针对这些场景,如何写出可维护性更高、更简洁优雅的代码。 ...

  • 3

    职场新人兼新手程序员斗胆开了新坑「如何写出更好的程序」,所见所得都是来自实际写代码时自己的思考,且已脱敏。这一系列不包含任何复杂的技术,也不包含任何难懂的代码。只是将核心问题暴露出来,针对这些场景,如何写出可维护性更高、更简洁优雅的代码。 ...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK