Category: Software Architecture

0

[转]TCP三次握手原理及故障排查

最近碰到一个问题,Client 端连接服务器总是抛异常。在反复定位分析、并查阅各种资料搞懂后,我发现并没有文章能把这两个队列以及怎么观察他们的指标说清楚。   因此写下这篇文章,希望借此能把这个问题说清楚。欢迎大家一起交流探讨。 1. 问题描述 场景:Java 的 Client 和 Server,使用 Socket 通信。Server 使用 NIO。 问题: 间歇性出现 Client 向 Server 建立连接三次握手已经完成,但 Server 的 Selector 没有响应到该连接。 出问题的时间点,会同时有很多连接出现这个问题。 Selector 没有销毁重建,一直用的都是一个。 程序刚启动的时候必会出现一些,之后会间歇性出现。 2.

[资源]算法资源汇总 0

[资源]算法资源汇总

1. 基础教程 https://www.coursera.org/specializations/algorithms https://www.coursera.org/specializations/data-structures-algorithms https://www.coursera.org/learn/algorithmic-toolbox/   Top 5 Courses to learn Data Structure and Algorithms in 2022 – Best of Lot 6 Essential Data Structures Java Programmer should Learn in 2022 5 Free Courses...

[汇总]面试经验 0

[汇总]面试经验

1. 1. 面试心得 只有Loser才说硅谷“养老” “在硅谷科技公司里,升职这件事,除了你自己,没有人会主动替你想着。”Rick说很多中国工程师在职场上工作很多年没有升职,就怪公司制度,怪自己的领导不是伯乐,却忘了最重要的一点——他们从未和上司明确提出自己的升职诉求。“提出诉求的时候,也需要明确向上司摆明自己过去六个月的工作业绩。简单来说,就是自己做了哪些项目。”

[Repost]Transferring Github stars 0

[Repost]Transferring Github stars

I recently changed the name of one of my projects and it dawned on me: it’s probably possible to transfer Github stars! I tested this theory and found it to be true. After pouring lots of...

0

[转]到底什么才是业务架构?

业务架构这个词大家时常听到,但是能解释得清楚的却不多,撩撩度娘,你就会发现,不少人问及业务架构和应用架构的关系,聊天时,也常有人问起业务架构师和产品经理什么区别?业务架构分析和需求分析什么区别?其实为了写这篇文章,我把《软件工程》、《软件系统架构》、《系统分析与设计》都翻了,这些经典教材确实没讲过业务架构这件事;我把《聊聊架构》也翻了,发现其中的讨论有解释到业务、架构和技术的关系,但是也没有特别强调业务架构。

[转]十年码农:我在加入亚马逊 5 个月后选择离职了 0

[转]十年码农:我在加入亚马逊 5 个月后选择离职了

我于2018年1月28日开始在亚马逊工作。在此三周前我和我美丽的妻子,还有我们的猫猫一起降落在了温哥华国际机场。刚到时我们最担心的是猫猫,从特拉维夫到温哥华18个小时的飞机对所有生物来说都是一个挑战。 事实上猫猫很好,它恢复得很快,并开始在我们租的AirBnB公寓里探索。与我们预想的一样,温哥华阴雨多雾,但是风景如画,与阳光明媚充满活力的特拉维夫不同。我们非常兴奋,因为我们花了6个月的时间为搬家做准备,这一天终于到来了。

0

[转]软件工程师:反对薪酬保密,我要公开硅谷的一些秘密

我是一名软件工程师,有3年的工作经验,在Square工作,这是一家总部位于旧金山的上市公司。我每年能赚13万美元,外加价值47500美元的股票,也就是每年177500美元。 基本工资我没有跟他们谈。不过我的确把4年股票赠与从15万美元谈到了19万美元。我是在2月5号入职的。那笔赠与目前的价值是412390.02美元(煤炭都会波动)。如果按照这个股价行权第一年的话,我真正的报酬是233097.51美元。 透露这一切令我感到害怕。陌生人和同行看到我挣的钱后认为我拿得太多了。(“开玩笑吧?她都干了什么能拿到这样的工资水平?”)要么他们也许会认为我拿得太少。(“如果她拿这么少的话那一定是工作不怎样。”)将来打算雇我的公司必然都会看到我之前的薪水然后将我未来的薪水锚定之前的水平,从而限制了我换工作时的涨薪水平,或者因为害怕我这个人太贵而将我排除在面试名单之外。 既然这样我为什么还要分享这些数字?因为我们需要更多地讨论有关我们拿多少报酬的事情。公平报酬始于更大的透明度。 在今天,性别、种族、阶层以及无数其他的身份标识在技术业的系统性偏见中都扮演着自己的角色。2018年的一份雇佣报告发现,男性在技术业拿到的报酬要高于女性,在同一家公司担任相同角色的情况下63%的时候男性都要高于女性。54%的技术女性报告说自己拿到的钱要比担任同一角色的男性要少。 但我们有一个有关报酬的真诚对话可以缩小差距的乐观理由。意识到存在报酬差异的人当中有66%者只是在跟同事聊到报酬的情况时才知道这件事情的存在。 硅谷真正的财富是通过股权产生的。 通常当大家讨论报酬——该接受什么,该拒绝什么,如何协商的时候,建议总是“知道你的价值。”但怎么才能知道?对于大多数员工来说,报酬被锁在一个黑箱里面,而处在职场最上层阶梯的人掌握着所有的信息。 只需要把他们支付的报酬数据给收集众多客户相关数字的机构,他们通常能获取到有关市场给特定角色开出的平均薪酬的信息,并且还能拿到聚合的分析。这种信息不对称造成了权力的失衡,只有一端,也即是更有权力的一方能够做出关于报酬支付的知情决定。 典型的场景是这样的:你接受了一家公司的面试,在电话筛选上花费了几个小时,并且完成了现场面试。你表现很好。准备拿到offer。当然了,招聘人员会打电话给你,问你想开出的报酬是多少。 这个时候你就开始恐慌了。如果你报出的数字太高怎么办?你不希望公司因此不给你这个offer了——你需要一份工作并且已经走完了整个面试流程,所以你不希望破坏这个机会。可如果你报得太低呢?你不希望贱卖自己,而你现在协商的报酬,在你拿到那份工作之前,将决定你未来几年的报酬。拥有类似资格的其他人拿到的报酬如何?你完全就是在黑暗中乱开枪。 纠正这种不平衡的努力的确有(比如Glassdoor、Comparably以及Levels这类的服务),但是聚合报酬数据的匿名平台并不能替代我们的真正需要:一种将公开讨论报酬正常化的文化。 因为有感于作家Carina Hsieh以及#talkpay运动,在三八国际妇女节那天我发了一条推特。它向技术界的男性发出来公开邀请,请他们与我分享自己的工资好让我可以匿名地发布出去。 即便在今天,相对于自己的同行,女性以及被忽视的少数族裔还是频繁地拿到过低的报酬,而他们甚至都没有意识到这一点,因为他们没有太多的比较点。我以为会有少数人愿意直接给我发信息。 迄今为止,已经有50万人看到了那条推特。成千上万的人已经直接私信我。大家发送了很多的工资信息给我,多到我仍然还没有把我收到的数据公布完,差得还远呢。 我们保守薪水的秘密是因为我们害怕会因为分享这些数据而受到惩罚。 全世界各种角色的技术员工都把自己的薪水数据发给了我,但因为我是一名湾区的软件工程师,所以我最大的数据集来自这里。那么,湾区的男性软件工程师拿到的薪水有多少呢?以下就是我对这场讨论的贡献: 软件工程师开发了你每天使用的各种网站和app。湾区的软件工程角色往往从6位数起步:120000美元是4年大学生涯刚刚毕业的计算机科学专业拿到的典型的基本工资,这是由大型上市技术公司设定的标准。 新毕业生去到小一点的初创企业能拿到的薪水可能会比这要低一点,但通常哪怕是初创企业也会支付6位数的工资。早期阶段初创企业给的钱最少,而真正令人安逸之心的薪酬数字只会出现在最大型的“初创企业”那里,比如Uber、Lyft以及AirBnb。 加州技术业的工资概况 初创企业和上市公司的一大差异化因素是股权。初创企业的股权到头来往往一文不值,但是上市公司的股权则代表着报仇的一大部分。基本的工资很少会涨到40万美元以上——实际上我还没有见过——但股票则可以令工程师的整体薪酬翻番或者甚至翻3番。 而且跟工资不一样的是,股票在价值上可以飙涨,如果你是目睹了股价坐火箭的Google员工或者你是一家初创企业的第一名工程师而那家公司后来被高价收购的话这一点是真的。硅谷的真正财富是通过股权产生的。 尤其是Facebook和Google对于迫切需要的人才开出的薪酬是最丰厚的。尽管市场竞争激烈,但如果你听说一位工程师的总报酬达到75万美元的话,那一定是非常不典型的。 很有可能他们是在Facebook或者Google工作,而且是全世界稍有的几个具备行业经验与专业知识能从事相关工作的人。他们就是戴着“金手套”的人:理论上他们可以在任何地方找到一份工作,但是他们无法离开(或者至少他们认为自己不能离开),因为没有一个竞争对手能配得上他们的报酬。 大家通常会担心自己会因为分享自己的收入而被炒鱿鱼。 如果让我来猜测湾区软件工程师的平均总薪酬(基本工资、股权加奖金)的话,我想大概在150000美元到200000美元之间。这个估计得到了我从Twitter收到的数据的支持,其中位数是183750美元。 根据Glassdoor,工程师的平均基本工资是137000美元,奖金为11000美元,这还没有包括股票奖励。 美国技术工资概况 这个数字已经不少了,所以这个话题的敏感性也不足为奇。尽管如此,我对披露报酬数字给我的人的害怕程度仍然准备不足,很多人一而再再而三地向我强调这一信息只能匿名发出。好几位甚至还要求自己的工作城市和职位细节信息要尽可能写得含糊,以防自己正好被对上号。大家往往会担心自己因为分享收入信息而被炒鱿鱼。 对待透明性的态度是文化已经受到严重破坏的迹象。我们如何得到报酬塑造了我们得日常生活的一切:我们可以在哪里生活,可以做什么,可以有多大的自由。在收入方面更清楚了解到我们所处的位置完全是我们的利益所在,但是我们还是要保守这一信息秘密,因为我们害怕会由于分享而受到惩罚。在一个本该极其重视透明性的行业里,我们在最需要透明性的地方却恰恰存在不足。 让我们改变这一权力格局吧。跟你的同事讨论,跟你的业界同行讨论,跟你的朋友讨论自己拿到了多少报酬。跟你团队里面的女性和少数族裔讨论。不要仅仅讨论工资,要讨论整体报酬包括股权和奖金在内。讨论相关过程,比如你的报酬如何改变了自己的职业生涯路径以及协商报酬最后对拿到offer的影响会怎样。邀请他们也做同样的事情。 大家的共同看法是公司在就业市场拥有一切权力因为就业机会是它们赋予的。但员工才是提供公司所需技能和经验的人。知道自己应该拿多少让你在一个通常不钟爱于你的体系里面多少有一点权力——而你应该运用这种权力。  ...

JFrog Artifactory 0

[Repost]Monitoring and Optimizing Artifactory Performance

As Artifactory usage increases, its resources can gradually become depleted, causing hiccups or hits in performance. When usage increases, so does the importance of monitoring your system and its historical data. Monitoring usage patterns...