strip

来自老程序员的10条中肯建议

元气小坏坏 提交于 2020-08-15 03:46:37
以下十条建议是一个老程序员给出的建议,句句中肯,希望能引起你的思考,而不是笑笑就过去了。 觉得在理,不妨随手点赞收藏转发分享,谢谢~ 程序员的二八定律: 1.想清楚,再动手写代码 刚入行的新手,为了展示自己的能力,拿到需求迫不及待地就开始上手写代码,大忌! 2.不交流,就会头破血流 不爱说话和沟通,需求都理解错误了,最后做出来才发现,只能加班返工。 3.文档没人看,但还是要写 文档的作用大部分时候不是用来沟通的,是用来做记录的,大部分需求还是通过口头沟通,但是不写文档做记录,后续就容易扯皮。 4.一定要写注释 时间久了,你会连自己的代码都看不懂。 另外,注释不要乱写,想想虾米: 虾米穷逼 VIP 事件回顾和由此引发的思考 5.别指望需求会稳定 产品需求是根据商业需求不断调整的,改需求是再正常不过的事,别抱怨。 6.业务高于技术 如果技术不为公司商业做服务,那将毫无价值,公司赚钱才是硬道理。 7.不要心存侥幸 你隐约感觉会出bug的地方,就一定会出bug。 8.自己先测几遍 不要写完就扔给测试人员去测,经自己手的东西,要保证质量。 9.尽可能自己解决问题 遇到不懂的问题,要先尽力解决,别动不动就截个图扔在别人求帮忙,上司和同事不是来给你擦屁股的,但是真的搞砸了就要尽快求助。 10.慎用新技术 新技术是好东西,但没有百分百把握,自作主张用了,多半是作死。 在用新技术之前

滴滴ElasticSearch千万级TPS写入性能翻倍技术剖析

喜夏-厌秋 提交于 2020-08-15 01:53:04
桔妹导读:滴滴ElasticSearch平台承接了公司内部所有使用ElasticSearch的业务,包括核心搜索、RDS从库、日志检索、安全数据分析、指标数据分析等等。平台规模达到了3000+节点,5PB 的数据存储,超过万亿条数据。平台写入的峰值写入TPS达到了2000w/s,每天近 10 亿次检索查询。为了承接这么大的体量和丰富的使用场景,滴滴ElasticSearch需要解决稳定性、易用性、性能、成本等诸多问题。我们在4年多的时间里,做了大量优化,积攒了非常丰富的经验。通过建设滴滴搜索平台,打造滴滴ES引擎,全方位提升用户使用ElasticSearch体验。这次给大家分享的是滴滴在写入性能优化的实践,优化后,我们将ES索引的写入性能翻倍,结合数据冷热分离场景,支持大规格存储的物理机,给公司每年节省千万左右的服务器成本。 1.背景 前段时间,为了降低用户使用ElasticSearch的存储成本,我们做了数据的冷热分离。为了保持集群磁盘利用率不变,我们减少了热节点数量。ElasticSearch集群开始出现写入瓶颈,节点产生大量的写入rejected,大量从kafka同步的数据出现写入延迟。我们深入分析写入瓶颈,找到了突破点,最终将Elasticsearch的写入性能提升一倍以上,解决了ElasticSearch瓶颈导致的写入延迟。这篇文章介绍了我们是如何发现写入瓶颈

使用SpreadJS 开发在线问卷系统,构筑CCP(云数据采集)平台

独自空忆成欢 提交于 2020-08-14 23:38:01
什么是CCP(云数据采集)平台? 图片来自于网络 CCP(云数据采集)平台诞生于大数据时代的背景下,通过实时数据挖掘,在海量的云端数据中发现隐藏其中的价值。 在线问卷系统,作为CCP(云数据采集)平台的信息采集接口,通过网络信息收集,帮助问卷设计者和数据分析师分析消费者在线上的行为特征和态度,批量而精确地抽取目标网页中的任何数据及任何信息,快速实现实时的信息获取。 CCP(云数据采集)平台的数据采集工作能否更简洁、更方便、更精准的执行,取决于在线问卷系统的基本功能和架构。 因此,在线问卷系统一般需包含以下四个功能模块:在线设计问卷、数据收集、数据分析和导出。 在线问卷系统的基本功能模块 在线设计问卷需具备: 问卷设计方式简单、易操作 可自由地修改问卷外观、可制作带有公司Logo的问卷模板 项目类型丰富, 内置选择题、填空题、打分、排序、个人信息收集等 应用场景广泛,可设计问卷调查、投票、满意度、表单、测评等模板 数据收集需具备: 独有的自定义数据收集渠道 支持手机端填写 支持无缝嵌入网站、APP和小程序 可通过第三方社交平台完成填写 数据分析需具备: 调查数据可实时查看 支持表格、图表等多样化的数据展示 提供数据筛选、交叉分析和原始数据下载 提高数据来源追溯,趋势一目了然 导出需具备: 支持导出为xlsx、CSV等格式 提供更安全的数据存储 不限发布数量,支持多并发

Circle Loss:从统一的相似性对的优化角度进行深度特征学习 | CVPR 2020 Oral

别等时光非礼了梦想. 提交于 2020-08-14 08:47:56
> 论文提出了Circle loss,不仅能够对类内优化和类间优化进行单独地处理,还能根据不同的相似度值调整对应的梯度。总体而言,Circle loss更灵活,而且优化目标更明确,在多个实验上都有较好的表现,个人认为是一个很好的工作   来源:晓飞的算法工程笔记 公众号 论文: Circle Loss: A Unified Perspective of Pair Similarity Optimization 论文地址: https://arxiv.org/abs/2002.10857 Introduction   论文认为两类基础的深度特征学习方法classification learning(比如softmax)和pair-wise learning(比如triplet loss)均是为了最小化类内相似度$s_n$和类间相似度$s_p$,理想是$(s_n=0, s_p = 1)$。而大部分常用的损失函数都是将$s_n$和$s_p$embed成相似度对,然后用各自研究的策略最小化$(s_n-s_p)$的值。这种策略提升$s_p$等同于下降$s_n$,但其实这种对称的优化方法很容易存在以下问题: 缺乏优化的灵活性。由于基于损失函数同时优化$s_n$和$s_p$,导致$s_n$和$s_p$的梯度的幅值是一样的。当$s_n$和$s_p$均很小时,依然会使用较大的梯度惩罚$s_n$

Web探索之旅 | 第三部分第三课:协议

浪尽此生 提交于 2020-08-14 06:53:38
>作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。 转载请注明出处。 原文: https://www.jianshu.com/p/a3069dd0a016 > 《Web探索之旅》 全系列 内容简介 前言 TCP 和 UDP 协议 HTTP,HTTPS,FTP 和 SMTP 总结 第四部分预告 1. 前言 之前的课 Web探索之旅 | 第三部分第二课:IP地址和域名 中,我们学习了 Client-Server 模型的客户端语言和服务器语言。 客户端语言有 HTML,CSS 和 JavaScript。 服务器语言有 PHP,Java,Python,Ruby,C#,还有新兴的 Go 语言(Google 推出的很强大的编程语言)。 不过,要使得 Web 中这么多机器之间能够相互通信,例如客户机 A 对服务器 E 说:“你好,请发送 baidu.com 这个网页给我”,是不能借助客户端或服务器语言的。这些语言只能为我们的网页服务。 那 Web 中的各个机器之间如何对话呢? 打个比方,电脑 A 对电脑 B 说:“您叫什么名字?”(电脑 A 说中文)。电脑 B 回答:“I beg your pardon?”(电脑 B 说英语,这句话的意思是“您说什么?”),那么这两台电脑因为语言不通,将会无法交流。 同样的,Web 中的各个机器,需要讲同一种语言,才能相互交流。 因此,IT

JavaScript 中常见HTML事件

家住魔仙堡 提交于 2020-08-14 03:17:56
HTML 事件就是发生在 HTML 元素上的事情,可以是浏览器行为,也可以是用户行为。我们可以使用 JavaScript 触发这个事件。 下面是常用的HTML事件: onclick :用户点击 HTML 元素。 onchange :HTML 元素改变 onload :浏览器已完成页面的加载。 onmouseover :用户在一个HTML元素上移动鼠标。 onmouseout :用户从一个HTML元素上移开鼠标。 onkeydown :用户按下键盘按键。 onclick事件 onclick 即点击事件,会在元素被点击时发生,支持 onclick 事件的元素有很多,但是我们一般会在按钮上使用这个事件,点击按钮触发某个事件。 示例: 例如下面代码,当我们点击按钮时,改变相应文本的内容: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS_侠课岛(9xkd.com)</title> </head> <body> <div> <p>单击按钮触发点击事件</p> <button onclick="clickFun()">点击按钮</button> <p id="con">如果你点击按钮,我将变成一直小兔兔~</p> </div> <script> function clickFun(){ document

E聊SDK-简介(3): 管理平台使用

假如想象 提交于 2020-08-14 02:45:07
1.说明: 教程属于官方E聊SDK-简介(3) 进入官网 进入管理台 SDK版本:v1.01 技术交流QQ群: 471688937 术语: E聊服务器: 接入E聊客户端的后台服务器 E聊管理台: 管理E聊APP的管理台 应用服务器: 也叫业务服务器,跑自己实际业务的后台 2.管理台简介: E聊SDK(以下简称E聊)使用App Key 与App Secret 接入到E聊服务器, 而App Key, App Secret 可以在E聊管理台上创建APP时创建。此外,管理台可以管理聊天用户的基本信息(创建E聊用户、编辑E聊用户)等。 3.操作步骤: 3.1 注册/登录管理台 打开 管理台 进入到登录页面(无账号的先进行注册),现阶段只支持邮箱注册登录。 image.png 3.2 创建App 创建App,输入自己App 的应用名称、行业类型、简介等. image.png 3.3 查看App Key, App Secret, Client Secret image.png 其中: App Key : App 的SDK Number Client Secret : 客户端使用嵌入式接入API, 文件服务器客户端API等使用 App Secret : 应用服务器访问E聊管理台所需的App Secret, 请不要传到前端应用, 自行妥善保管 3.4 创建E聊用户 创建完的E聊是没有用户的

一分钟了解自动化测试【灵魂配图】

风流意气都作罢 提交于 2020-08-14 02:15:24
其实自动化测试已经不是一个新兴产物。为了写这个文章,我特意去百度百科搜索了一下,这个是百度自动化测试的官方定义。 接下来我们大约用一分钟的时间来了解自动化测试。尽量精简,有利于大家的阅读理解。 显而易见,掌握了自动化测试,薪资待遇是十分可观的。 首先我们从招聘岗位需求说起。看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。例如: * 了解 selenium、appium或者其他自动化测试框架 * 至少熟悉一门面向对象开发语言,有一定的代码功底优先 * 熟悉Java或者python,有一定的测试自动化经验和代码阅读能力 * 了解接口集成测试,会使用JMeter、Postman、SoapUI等接口测试工具 等等,上述内容不再一一列举。突然自动化测试遍地开花,好像测试工程师的自动化测试能力成为了标配一般。本文就从自动化测试的要求入手,简单的进行自动化测试扫盲,争取让各位在一分钟之内了解自动化测试。 那么我们就从“自动化测试”五个字来剖析。 #测试 测试:这个我们熟悉。最经典的一个解释“程序测试是为了发现错误而执行的过程。”这个来自于G.J.Myers的经典著作《软件测试的艺术》的定义,给我们展示了测试的本质:过程。 测试是为了发现软件的错误,而执行的过程,这个过程可以是以下内容: * 运行被测试的软件,执行软件的功能 * 运行其他工具,去检查软件的内部和外部

Web在线打印设计器即将推出,像Excel一样在线设计模板

我的未来我决定 提交于 2020-08-13 17:15:10
软件项目中总会遇到 “单据打印” 需求,特别是国企项目,一直以来没有遇到一个免费的简单好用的打印设计器,大部分项目都是手工编码,“耗时耗力,又各种兼容调试,那个痛苦啊”。曾经做一个不动产打印的功能,来来回回,一个不动产证书打印花费了将近一个月时间,一个出力又不讨好的工作。 打印效果图: 针对这个痛,JEECG正在研发一个打印设计器,也是即将推出的 “积木报表” 一部分功能,通过打印设计器,可以像Excel一样在线设计模板,简单方便,可以很快速的设计出单据打印模块。最重要的是可以将开发人员释放出来,让业务人员进行模板设计,开发人员调用模板和结合数据,即可实现单据的打印功能。 (那个痛苦的不动产打印,通过打印设计器,仅2天时间搞定,一天设计打印模板,一天将模板与数据对接) JEECG报表打印设计器功能点 一、数据源绑定 JEECG报表打印设计器支持数据源绑定,通过SQL、API等数据源方式,将数据源与模板绑定。同时支持表达式,自动计算合计等功能,使计算工作量大大降低。 二、在线打印设计 JEECG报表打印设计器已经把所有样式封装好了,不需要编写代码,只需要在Web设计器中,像excel一样设计报表,完成后可在线打印,如图1.3。 三、打印样式设置 之前打印的时候,需要打印预览,才可见到打印样式,如果样式不居中,需要重新返回编辑页面编辑,再在打印预览查看打印效果,操作起来很麻烦。

在canvas上绘制3d图形 -转载

馋奶兔 提交于 2020-08-13 16:03:09
项目简介 文章里有相当多的用到中学数学中的知识,推导3d的几何模型是如何绘制到2d平面中去的,最终利用推导出的结论编写代码,实现一个波纹的demo 项目地址: https://github.com/zz632893783/canvas-3d 效果13.gif 安装项目依赖模块 npm install 运行项目 npm run dev 从z轴观察yz平面上的点 01.png 想象一下有这么一个三维空间(如图),有一个点B,我们从A点观察B点。那么B点在xy平面上的投影即AB的延长线与平面xy的交点C。而xy平面不就是可以看一个二维的canvas画布吗。 我们暂且将A点放在z轴,B点放在yz平面,则A点的三维坐标可以表示为 A(0,0,zA),B点的三维坐标可以表示为B(0,yB,zB)。从B点做一条垂线垂z轴于D点。 ADB与AOC是相似三角形,所以有 图片3.png 变换得 图片6.png 其中DB即B点的y坐标,AO即A点的z坐标,DO即B点的z坐标,所以 图片7.png 这里的OC也就是C点的y坐标。 从z轴观察xz平面上的点 02.png 同理我们从A点观察平面xz上的某一点E(xE,0,zE),ADE与AOF是相似三角形 图片8.png 变换得 图片9.png 从z轴观察空间内任意坐标 之前所观测的B点是位于yz平面内,E点是位于xz平面内,但是如果是空间内任意位置的点呢