兴趣是最好的老师|程序员的开源月刊《HelloGitHub》第 66 期( 三 )


兴趣是最好的老师|程序员的开源月刊《HelloGitHub》第 66 期
文章图片
20、javascript:Airbnb开源的JavaScript风格指南 。 中文//采用数组解构constarr=[1,2,3,4];//badconstfirst=arr[0];constsecond=arr[1];//goodconst[first,second]=arr;
21、spy-debugger:远程调试手机页面和抓包的工具 。 操作简单仅需手机和电脑在同一个WIFI下 , 即可在实现真机调试页面
兴趣是最好的老师|程序员的开源月刊《HelloGitHub》第 66 期
文章图片
Kotlin项目
22、Component:Android的组件化框架 , 帮助开发者在实现项目组件化 。 它的强大在于功能齐全、更新及时 , 支持Kotlin、AndroidX、RxJava、协程等
Objective-C项目
23、iOSInterviewQuestions:iOS面试题集合(附答案)
Python项目
24、Pokemon-Terminal:适用于多种终端的口袋妖怪主题工具 。 支持iTerm2、ConEmu、Terminology、Windows的终端 , 已经收集了719个小精灵
兴趣是最好的老师|程序员的开源月刊《HelloGitHub》第 66 期
文章图片
25、mypy:Python静态类型检查库 。 既然Python是一门动态类型语言 , 为啥还要检查类型呢?有了静态类型检测则无需运行代码 , 就可以发现程序中潜在的错误 。 还可以加入到githook中 , 实现在提交代码前自动检查 。 详情查看这篇文章
26、CPython-Internals:图文并茂的Python源码阅读笔记项目 。 阅读的是比较新的CPython3.8版本 , 重点是项目一直在更新维护staticvoidtake_gil(PyThreadState*tstate){/*忽略*/while(_Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked)){/*只要gil是锁住的状态,进入这个循环*/inttimed_out=0;unsignedlongsaved_switchnum;saved_switchnum=_PyRuntime.ceval.gil.switch_number;/*释放gil.mutex,并在以下两种条件下唤醒1.等待INTERVAL微秒(默认5000)2.还没有等待到5000微秒但是收到了gil.cond的信号*/COND_TIMED_WAIT(_PyRuntime.ceval.gil.cond,_PyRuntime.ceval.gil.mutex,INTERVAL,timed_out);/*当前持有gil.mutex这把互斥锁*/if(timed_out&&_Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked)&&_PyRuntime.ceval.gil.switch_number==saved_switchnum){/*如果超过了等待时间,并且这段等待时间里gil的持有者没有变更过,则尝试让当前持有gil的线程进行释放gil把gil_drop_request值设为1,持有锁的线程看到这个值的时候,会尝试放弃gil*/SET_GIL_DROP_REQUEST();}/*继续回到while循环,检查gil是否为锁住状态*/}/*忽略*/}
Rust项目
27、nushell:一种更加人性化的新型shell
兴趣是最好的老师|程序员的开源月刊《HelloGitHub》第 66 期
文章图片
Swift项目
28、Clipy:macOS的剪贴板扩展应用 。 支持展示剪贴板历史记录、内容模版等功能
兴趣是最好的老师|程序员的开源月刊《HelloGitHub》第 66 期
文章图片
其它
29、QWidgetDemo:Qt编写的示例集合 。 每个示例都可独立运行、代码简洁易懂 , 适合初学者学习
兴趣是最好的老师|程序员的开源月刊《HelloGitHub》第 66 期
文章图片
30、xemu:免费开源的Xbox模拟器 , 支持Windows、Linux、macOS系统
兴趣是最好的老师|程序员的开源月刊《HelloGitHub》第 66 期
文章图片
31、yabai:适用于macOS的平铺式窗口管理器 。 该工具可以轻松实现窗口平铺不重叠 , 不用鼠标仅通过键盘移动、调整、切换、全屏、自动布局等管理窗口的操作Control+Option+A/D:激活平铺/浮动模式Option+h/j/k/l:使左/下/上/右侧窗口成为活动窗口Shift+Option+h/j/k/l:向左/下/上/右移动当前活动窗口Command+Option+n:创建新桌面 , 并将当前活动窗口移动至新桌面
兴趣是最好的老师|程序员的开源月刊《HelloGitHub》第 66 期
文章图片
32、awesome-for-beginners:对初学者友好的开源项目集合 。 如果你想参与到开源项目的建设 , 可以在这个集合中寻找项目 , 祝你早日完成第一个贡献(PR)