完善数据特征,比如在销售时可以友好的用户调查
以用户生命周期为线索,解析各环节业务指标,帮助你快速定位与拆分数据分析目标。
基于对用户下单数据的统计分析,尝试挖掘用户消费行为与营销渠道、用户画像之间的相关性,进一步优化营销渠道与推荐系统。
架构师(技术基础):满足性能、可扩展、解耦/集成、安全、可运维、高可用、易部署、易更新
短期规划(进入行业): 熟悉公司所有系统和业务、熟悉珠宝行业,有一个更全面的认识
行业产品: 商业(10万家珠宝门店)、产品(互联网+新零售)、技术(微服务+大数据、技术竞争力)、团队建设和管理、风控
“你怎么会不知道什么是 BGP?”“你难道没听说过 Rust?”
类似的问题可能每天都会出现在我们面前。没错,投身于软件行业的很多人之所以热爱这份工作,就是因为它敦促着我们终身学习。
在软件领域,无论我们朝哪个方向前进,都有着广阔的知识空间不断延伸而且每一天都有所变化。换句话说,这是一份能够承载我们度过几十年的职业生涯,而两位在类似岗位上分别工作了几十年的人之间也很可能存在巨大的知识差距。我们越早意识到这一点,就能越快摆脱“冒充者综合症”,成为一个乐于向他人学习、也乐于教导他人的积极分子。
我知道这种话大家肯定听过无数遍了,但大多数软件工程师仍拒不承认,理由是这种说法似乎在贬低他们的工作成果。我个人觉得这样的心态大可不必,这类表达其实是在突出软件开发环境中的复杂性与非理性因素,而这些都会加剧我们面临的挑战。我们当然可以设计出在技术上最令人印象深刻的东西,但却没人愿意用——这类困境随时都会出现。
软件设计主要是一种聆听活动,开发者往往身兼软件工程师、通灵师乃至人类学家等多重角色。而我们对这种设计能力的每一点投资,无论是引入专业的用户体验师还是接受更进一步的自我教育,都能给开发成果带来巨大提升。毕竟与打磨设计能力相比,开发一款“没人用”的软件成本还是太高了、太高太高。
伟大的软件工程师会深入思考代码成果的用户体验。虽然使用的术语或者切入点不同,但无论是对于外部 API、编程 API、用户界面、协议还是其他接口,优秀的工程师都会考虑由谁来使用、为什么要使用、如何使用以及对用户来说哪些因素真正重要等。总之,牢记用户需求才是实现良好体验的核心所在。
“程序员就是管编程的”,而且跟其他专业人士一样,我们也会在自己最擅长的方面犯错。这是人的本性,没办法。大多数软件工程师编写出的代码总是有点错误,而且往往无法用非技术方案来解决。
另外有一种很神奇的现象,越是有大量相当成熟的解决方案存在,工程团队就越是想“重新发明轮子”。想表达自我、加快专业成长当然是好事,但还请大家分清场合与需求,过度泛滥的发明欲望恐怕不利于编写出无需维护的代码。
这也是我个人一直在努力解决的问题。我的职责变化导致自己距离常规软件工程任务越来越远,我发现跟上开发者生态的发展速度越来越难,有时候自己甚至不理解哪些趋势真正重要。总之,如果不能理解特定生态当中的那些可行性与可用选项,那么我们根本没办法为所有问题找到合理的解决方案。
总而言之,务必警惕那些已经很久没写过代码、也没设计过系统的所谓“大牛”。
http://opendigger-oss.x-lab.info/global-study.html
github api doc
https://docs.github.com/en/rest/reference/repos#list-languages
https://docs.github.com/en/rest/reference/repos#get
github api
https://github.com/github-tools/github
https://github.com/PyGithub/PyGithub
https://github.com/google/go-github
https://github.com/o2sh/onefetch/blob/main/docs/README.cn.md
https://zhuanlan.zhihu.com/p/329042221
github readme
https://github.com/anuraghazra/github-readme-stats
https://github.com/lowlighter/metrics
awesome
https://github.com/abhisheknaiidu/awesome-github-profile-readme
https://github.com/topics/profile-readme
https://github.com/topics/readme-generator
https://github.com/topics/readme-stats
获取star数量
curl https://api.github.com/repos/openjw/open
{
"id": 214067474,
"node_id": "MDEwOlJlcG9zaXRvcnkyMTQwNjc0NzQ=",
"name": "open",
"full_name": "openjw/open",
"private": false,
"owner": {
"login": "openjw",
"id": 54665915,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjU0NjY1OTE1",
"avatar_url": "https://avatars.githubusercontent.com/u/54665915?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/openjw",
"html_url": "https://github.com/openjw",
"followers_url": "https://api.github.com/users/openjw/followers",
"following_url": "https://api.github.com/users/openjw/following{/other_user}",
"gists_url": "https://api.github.com/users/openjw/gists{/gist_id}",
"starred_url": "https://api.github.com/users/openjw/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/openjw/subscriptions",
"organizations_url": "https://api.github.com/users/openjw/orgs",
"repos_url": "https://api.github.com/users/openjw/repos",
"events_url": "https://api.github.com/users/openjw/events{/privacy}",
"received_events_url": "https://api.github.com/users/openjw/received_events",
"type": "Organization",
"site_admin": false
},
"html_url": "https://github.com/openjw/open",
"description": "Learning notes & research",
"fork": false,
"url": "https://api.github.com/repos/openjw/open",
"forks_url": "https://api.github.com/repos/openjw/open/forks",
"keys_url": "https://api.github.com/repos/openjw/open/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/openjw/open/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/openjw/open/teams",
"hooks_url": "https://api.github.com/repos/openjw/open/hooks",
"issue_events_url": "https://api.github.com/repos/openjw/open/issues/events{/number}",
"events_url": "https://api.github.com/repos/openjw/open/events",
"assignees_url": "https://api.github.com/repos/openjw/open/assignees{/user}",
"branches_url": "https://api.github.com/repos/openjw/open/branches{/branch}",
"tags_url": "https://api.github.com/repos/openjw/open/tags",
"blobs_url": "https://api.github.com/repos/openjw/open/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/openjw/open/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/openjw/open/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/openjw/open/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/openjw/open/statuses/{sha}",
"languages_url": "https://api.github.com/repos/openjw/open/languages",
"stargazers_url": "https://api.github.com/repos/openjw/open/stargazers",
"contributors_url": "https://api.github.com/repos/openjw/open/contributors",
"subscribers_url": "https://api.github.com/repos/openjw/open/subscribers",
"subscription_url": "https://api.github.com/repos/openjw/open/subscription",
"commits_url": "https://api.github.com/repos/openjw/open/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/openjw/open/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/openjw/open/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/openjw/open/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/openjw/open/contents/{+path}",
"compare_url": "https://api.github.com/repos/openjw/open/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/openjw/open/merges",
"archive_url": "https://api.github.com/repos/openjw/open/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/openjw/open/downloads",
"issues_url": "https://api.github.com/repos/openjw/open/issues{/number}",
"pulls_url": "https://api.github.com/repos/openjw/open/pulls{/number}",
"milestones_url": "https://api.github.com/repos/openjw/open/milestones{/number}",
"notifications_url": "https://api.github.com/repos/openjw/open/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/openjw/open/labels{/name}",
"releases_url": "https://api.github.com/repos/openjw/open/releases{/id}",
"deployments_url": "https://api.github.com/repos/openjw/open/deployments",
"created_at": "2019-10-10T02:23:31Z",
"updated_at": "2021-10-28T08:22:41Z",
"pushed_at": "2021-10-28T08:22:38Z",
"git_url": "git://github.com/openjw/open.git",
"ssh_url": "git@github.com:openjw/open.git",
"clone_url": "https://github.com/openjw/open.git",
"svn_url": "https://github.com/openjw/open",
"homepage": "",
"size": 622217,
"stargazers_count": 15,
"watchers_count": 15,
"language": "Roff",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"forks_count": 3,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 0,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": false,
"topics": [
],
"visibility": "public",
"forks": 3,
"open_issues": 0,
"watchers": 15,
"default_branch": "master",
"temp_clone_token": null,
"organization": {
"login": "openjw",
"id": 54665915,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjU0NjY1OTE1",
"avatar_url": "https://avatars.githubusercontent.com/u/54665915?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/openjw",
"html_url": "https://github.com/openjw",
"followers_url": "https://api.github.com/users/openjw/followers",
"following_url": "https://api.github.com/users/openjw/following{/other_user}",
"gists_url": "https://api.github.com/users/openjw/gists{/gist_id}",
"starred_url": "https://api.github.com/users/openjw/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/openjw/subscriptions",
"organizations_url": "https://api.github.com/users/openjw/orgs",
"repos_url": "https://api.github.com/users/openjw/repos",
"events_url": "https://api.github.com/users/openjw/events{/privacy}",
"received_events_url": "https://api.github.com/users/openjw/received_events",
"type": "Organization",
"site_admin": false
},
"network_count": 3,
"subscribers_count": 5
}
subscribers_count
stargazers_count
forks_count、forks
license
open_issues
language
size
curl --silent 'https://api.github.com/repos/jasonrudolph/keyboard' -H 'Accept: application/vnd.github.preview' | jq '.watchers_count'
获取限制信息(如果没有任何授权直接访问的话,单IP限制每小时60次requests。如果有授权的话(基本身份认证 basic Authorization),每小时5000次。)
https://blog.csdn.net/weixin_36300623/article/details/113451650
[root@build-center ~]# curl -I https://api.github.com/repos/openjw/open
HTTP/1.1 200 OK
Server: GitHub.com
Date: Thu, 28 Oct 2021 08:50:13 GMT
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60, s-maxage=60
Vary: Accept, Accept-Encoding, Accept, X-Requested-With
ETag: W/"5c56fca32bccbf26f013e9e77e4afb16adc5ee9e8c056a665fa88d187f48a055"
Last-Modified: Thu, 28 Oct 2021 08:22:41 GMT
X-GitHub-Media-Type: github.v3; format=json
Access-Control-Expose-Headers: ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset
Access-Control-Allow-Origin: *
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Frame-Options: deny
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin
Content-Security-Policy: default-src 'none'
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 51
X-RateLimit-Reset: 1635413103
X-RateLimit-Resource: core
X-RateLimit-Used: 9
Accept-Ranges: bytes
Content-Length: 6226
X-GitHub-Request-Id: 7FA4:50FD:543211:5E1E49:617A6444