大纲
数据库系统、分布式系统、数据科学
待看文章
#程序员的自我修养
《程序员的自我修养》链接、装载与库2017年4月30日星期日
在golang1.8中使用插件
https://github.com/vladimirvivien/go-plugin-example
https://medium.com/learning-the-go-programming-language/writing-modular-go-programs-with-plugins-ec46381ee1a9
关于产品
纵观历史上所谓商业上成功的产品/发明,他们成功并不是因为 “being different”,而是因为在与已有替代品相似的基础上 “optimally distinct”。
https://wanqu.co/a/3827/2016-08-27-think-different-is-bad-advice.html?s=social
关于代码
https://dave.cheney.net/2016/08/20/solid-go-design?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website
https://www.youtube.com/watch?v=zzAdEt3xZ1M
http restful 设计
JSON Web Tokens (JWT) vs Sessions
https://float-middle.com/json-web-tokens-jwt-vs-sessions/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website
https://tools.ietf.org/html/rfc7519
architecture
12-factors
https://12factor.net/zh_cn/
Microservices Ending up as a Distributed Monolith
https://www.infoq.com/news/2016/02/services-distributed-monolith?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website
The perils of shared code 共享代码的危险
https://www.innoq.com/en/blog/the-perils-of-shared-code/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website
关于创业
创业公司的股权到底该怎么算
http://a16z.com/2016/08/24/options-ownership/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website
关于代码部署
https://blog.box.com/blog/kubernetes-box-microservices-maximum-velocity/
- 董飞:2016年科技阅读列表
- 教你如何迅速秒杀掉:99%的海量数据处理面试题
- highscalability
- 新浪新兵训练营
https://wanqu.co/a/4211/2016-11-09-making-time-for-side-projects.html?s=social
https://gist.github.com/fat/a47b882eb5f84293c4ed
Thing Explainer: Complicated Stuff in Simple Words
英文原版阅读有哪些入门书籍推荐? - 知乎
- 数据统计方向 opentracing metric qps tps 计算 https://zhuanlan.zhihu.com/p/21348220
- 压测 tcpcopy Apache ab测试,golang测试,单元测试,微服务测试
优质资源(个人向)
dirtysalt’s homepage
digests dylanninin
基础教育
The Architecture of Open Source Applications
aosabook-500lines
about-unicode-and-character-sets
what-cs-majors-should-know/
must-see-tech-talks-for-every-programmer/
every-programmer-should-know
2016年科技阅读列表
50家硅谷IT公司技术博客
http://highscalability.com/
about_data_science_demo
TO DO
互联网广告、推荐系统、定向营销、电子商务、信息检索等方面的建模经验;
分布式计算平台的使用和并行算法开发经验;
严密的数学思维、突出的分析和归纳能力、优秀的沟通表达能力。
记录
- 第三方登录,账户系统(token jwt)
- 第三方支付
- 微服务架构
- 基础技术 golang、restful、web框架、gorm、protobuf、grpc、kafka、postgresql、mysql、redis、nginx、log记录、
工作
书籍
框架源码(设计模式思想)
算法题目
Golang深入了解
机器学习
看大厂的博客 看看看!!!!
使用golang的国外公司
如何验证创业想法
解决这些问题的方法就是在执行前先验证
在后台,我们把数据整合成图形进行分析。我们可以看到我们所说的各项选项的数据。点击“购买路径”和“安装软件”的用户百分比超过了我们预先设置的数值。
除此之外,通过首页的论坛留言功能,我们还获得了非常有建设性的用户评论。这些数据将对我们决定如何进行下一步裨益良多。
独树一帜的才称得上是伟大的想法,伟大的头脑从不人云亦云。
设计思维过程
共情(Empathize)定义(define),出方案/头脑风暴(Ideate), 原型制作(prototype),和测试 (Test)。
整个过程的最终目的是要创造出一个产品、服务或是体验。这个产品应该是人们想要的(desirability, 期许性),具有有用的潜质(viability, 生存能力),以及在技术方面能简单方便地实现(feasibility,可行性)。
https://zhuanlan.zhihu.com/p/24891146
程序员常用的技能
- 重构是程序员的主力技能
- 工作日志可以提高脑容量
- 先有profiler调查,后有优化
- 要写注释,要写注释,要写注释
- 写单元测试总是不会错的
- 从实现中提炼框架
- 代码层次清晰,结构清楚
- 管理行不行,就看工作流
- 编码不要畏惧变化,要拥抱变化
- 常充电,程序员只有一种死法,土死的
- 把不靠谱的需求放到最后再做,很可能到时候需求就改了
- 可维护性比性能更重要
- 解决专业问题的时候,请找专业人士,不要自己瞎钻
- 学习新技术,先过一遍文档,后看博客
- 删代码,找bug
搜索、debug、看书、多写代码、多思考、多学习新知识、多运动
闭环原则 做事要有头有尾
- 谁难受谁推进 积极主动去挑重担
think bigger 尽量站在另一个高度看问题
选择一个可行的目标
- 设定目标的SMART原则
- 挑选重要但是不紧急的事
- 读书、写代码、英文,按计划生活,更加自律,更加有规律的生活
- 建立生活习惯
- 算法,循环队列
做更少的事情,更好
决定哪些事情更重要
跟所有其它的事情说“不”
当一些琐碎的事情发生时,重读第2步
眼前事立断立行,长远计日拱一卒
Vision/视野 Scope/边界 Schedule/务实 Rework/重来 Team Building/团队战力
做事的专注,做人的稳重
知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。 ——《大学》
工作性质不能局限思维活动,体力活动的水平不应该限制脑力活动的水平
redis数据结构与对象
- 字符串对象
- 列表对象(list object)
- 哈希对象(hash object)
- 集合对象(set object)
- 有序集合对象(sorted set object)
关于API
A well defined pipeline to process requests
REST API done right (methods, status code and headers)
Validation made easy(validation应该简单,对不符合预期的一概拒绝)
Security beared in mind (authorization,使用jwt、“Authorization”头,采用https保护token)
Policy based request throttling (ACL有时候API有特殊的要求,例如指定国内7点到9点可以访问)
Easy to add new APIs
Easy to document and test(应该包含method、path、request、response)
Introspection(API应该有基本的速度访问控制)
什么是真正的restful架构,什么是非典型restful架构
“thin controllers, fat services” methodology
*Education is an admirable thing. But it is well to remember from time to time that **nothing that is worth knowing can be taught
- 查看文档,基本的运维说明
- 配置环境,拉取源码,查看项目结构
- 采用git源码管理,手动部署项目,使用简易脚本切换 机器,部署代码而不是敲命令。
工程化
如何配置golang开发环境
如何建立基本的git源码管理(gitlab服务器)
如何运维,更加方便快捷的连接到服务器,jump web data sandbox
是否应该使用 jenkins或者其他的部署工具,
使用微服务,如何处理订单或者处理服务间的事务
微服务部署的最佳实践方式,单个服务的快捷部署。
微服务的kubernetes运维
一个微服务的基本结构
kc:一个服务主要分为client,service
- service主要实现该服务的具体方法,直接与dao层数据库交互
- client抽象封装了grpc的调用过程,使得外界调用参数更加简化,基本是调用本身服务
- 加载配置文件,根据配置文件生成连接客户端,mysql、ssdb、kafka
- 所有的微服务都使用同一个 数据库,所以事务保证就可以很容易做了(使用不同的库?还是相同的库)
- 统一使用protobuf作为序列化工具,从服务间调用到restful调用
微信登录原理与流程,grantToken,验证码,
web框架的原理,tornado、beego、gin
golang 正则表达式(regexp.MustCompile(“Bearer (\S+)”)) bearerTokenRegex.FindSubmatch
base controller 基本信息设置,获取token,输出json
日志级别与收集,
缓存的利用
代码级别的事务如何实现
reportresult、getcouponlist
简历该怎么写
1.负责企业应用微服务架构的模块设计,承担核心功能模块的代码编写;
2.互联网新技术的预研和产品化的工作;
3.优化系统性能以及重构系统。
实现了什么功能、选型、方案?遇到了哪些问题?