首页 文章 精选 留言 我的

精选列表

搜索[Rust开发],共10000篇文章
优秀的个人博客,低调大师

开发工具总结(9)之开源项目的README文档的最全最规范写法

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/813b70d5b0de 转载请标明出处:https://www.jianshu.com/p/813b70d5b0de 本文出自 AWeiLoveAndroid的博客 【好消息】我的微信公众号正式开通了,关注一下吧! 关注一下我的公众号吧 看过很多开源库,发现有些库的文档写的一团糟,有的甚至就是一个标题,让你自己下载之后运行,自己摸索,看的很头疼。而那些使用量大的库的文档写的很标准,很详细,看的很舒服。 README文档写的好的话能减少很多使用成本,能帮助这个库让更多人了解,更多的人用,可以说好的文档就是一个门面。有好的 README 文档的项目不一定是一个好开源项目,但一个好开源项目一定有一个好的 README。 下面就简单的总结一下README文档规范写法。(这只是我个人根据github上几百个大型开源库总结出来的,如你有更好的意见,欢迎留言。) 一、README文档的组成部分 看过很多开源框架的README文档,综合一下,大概有以下几部分组成: (一)国际化 (二)项目工程介绍 (三)项目的使用效果图 (四)项目特点 (五)项目的基本结构(架构) (六)集成方式 (七)使用方法 (八)混淆 (九)关于作者/组织及交流方式等信息。 (十)贡献者/贡献组织 (十一)鸣谢 (十二)版权信息 二、下面就每个部分简单的分析一下: (一)国际化 github是面向全球的一个开源网站,所以不要局限于中文文档,建议写一个英文的README,让来自全球的人都能更方便的了解你的项目。推荐写法,在REAMDE开头写上国际化引用地址: 比如: 国际化 (二)项目工程介绍 项目介绍是必不可少的,它能让别人快速了解项目。项目介绍主要包括: 项目名称、logo(没有logo就不写) 这个开源项目是做什么的? 这个项目是什么语言编写的? 这个项目目前被多少人用到了,有多少好评等? 项目维护、依赖更新状态(如果有的话,这也可以用)等 项目可用版本及其他版本,以及每个版本的更新信息记录 Demo 或官网地址(如果有) 效果图如下所示: 英文版: 英文版项目介绍 中文版: 中文版项目介绍 上述案例里面那些图标,请参考这个网站 Shields.io,打开之后想用哪个直接复制就可以了,同时它也支持自定义样式。 (三) 项目的使用效果图 如果是一些自定义控件或者项目的演示效果的,基本都会放上演示效果图,可以是图片,也可以是gif图。 建议:静态的页面的放截图,交互很复杂的建议放gif图。 如果功能比较多,建议每个功能一张效果图。 示例如下: LoveHeartView使用示意图如下图所示: (四)项目特点 主要是介绍项目的特点,方便别人查看和了解该项目。 比如 360的RePlugin框架的特点就写的很详细: 360的RePlugin的项目特点 (五)项目的基本结构(架构) 这里主要介绍项目的各个组成部分,如果是框架,可以附带架构图解;如果是其他的,可以提供一些UML分析图,顺便分析一下源码也行的。 比如 360的RePlugin架构图解 如下所示: 360的RePlugin架构图解 关于RePlugin架构的相关说明 (六)集成方式 一般的项目传到jcenter上面或者AS插件传到jetbrains的话 一般会附带相关的集成方式的说明。(如果没有这些措施的话,这一步可以略过不看。) 比如 okhttp 就有详细的3种集成方式: 一个是下载Jar包;一个是引用Maven库;第三个是添加Gradle依赖: okhttp的集成方式 (七)使用方法 一般的README必不可少的,最重要的就是用法,主要包括:安装,运行,编译,部署,debug,该github上的这个库如何在自己的项目中使用,以及需要注意的问题,版本更新适配问题等等。 这里就拿 Glide 举例说明,Glide里面有一个详细的wiki使用文档的,首页的README里面也写了一个简单的基本用法,如下图所示: Glide的基本用法 (八)混淆 一般来说,开源库都会设置一些混淆规则的,部分项目由于项目类型特殊之处,所以就没有混淆这一项,具体的看开源项目来定。 例如LitePal这个开源库的混淆 如下图所示: LitePal混淆规则 (九)关于作者/组织及交流方式等信息。 这个就很灵活了,不是每一个必备,当然写出来方便大家联系作者,也是很好的。可以写一下作者或者组织的联系方式,微信,邮箱,博客,微博,甚至支付宝转账二维码等都是可以放上去的。 例如 blankj的AndroidUtilCode这个库为例,为了避免打广告嫌疑,我做了打码处理: (十)贡献者/贡献组织 比如 谷歌推出的 sample 里面就有贡献者/贡献组织信息,如下图所示: 谷歌推出的sample的贡献者/贡献组织信息 (十一)鸣谢 这个主要是引用了哪些开源技术,这里可以做一些鸣谢,表示对别人的尊重,其实也是一个引用声明,避免因为版权而引起不必要的纠纷。 例如:我写的这个库 https://github.com/AweiLoveAndroid/CommonDevKnowledge/blob/master/interview/summary.md 里面就写了鸣谢。 https://github.com/AweiLoveAndroid/CommonDevKnowledge里面的鸣谢 (十二)版权信息 版本很重要,开源许可证很重要,如果没有生命版权,可能会因为一些侵权行为而无法很好的维权,版权信息可以保护作者的权益(个人理解)。 世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。最流行的有六种:GPL、BSD、MIT、Mozilla、Apache、LGPL 乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这 六种许可证之间的最大区别。 六种开源许可证之间的区别 比如 Picasso 里面的版权信息,如下图所示: Picasso 里面的版权信息

优秀的个人博客,低调大师

张高兴的 Windows 10 IoT 开发笔记:部署 ASP.NET Core 2 应用

今天是大年初二,都去走亲戚了吧,享受一下这难得的能和亲友相聚的时光。而我就不一样了,今天一回到家就又开始瞎折腾了,哈哈哈。 问题背景 最近花了点时间用 ASP.NET Core 2 写了个个人博客,中间出了好多问题,过程弯弯曲曲的,但好歹最后还是完成部署在阿里云上了。这几天闲的没事看 .NET Core CLI,发现运行时标识符(Runtime IDentifier)居然有 win10-arm,这使我突然萌生了想把我的博客部署在 Raspberry Pi 上。(这就是纯属瞎折腾,部署在 Windows IoT 上确实没用,反正玩都玩了,干脆写篇博客吧...) 发布(Publish)应用 在将应用部署在 Windows IoT 上之前,首先是要以某种合适的方法将应用发布到本机。(Windows 10 IoT 只包含运行时) 1. 更改项目输出类型 打开项目“属性”,将“应用程序”选项中的“输出类型”,改为“控制台应用程序”。 或者你也可以直接编辑 .csproj 文件,将 的值改为 Exe。 2. 编辑 Program.cs 和在 Linux 上部署一样, 在 BuildWebHost 里加上这么一句话 .UseUrls("http://*:5000")。* 作为主机名,5000 为监听端口。 3. 在控制台发布 在“工具”的“Nuget 包管理器”中,打开“程序包管理器控制台”。运行以下命令: dotnet publish -c release -r win10-arm 因为是要部署在 Raspberry Pi 上, RID 用的 win10-arm。发布的路径是在 “你的项目\bin\Release\netcoreapp2.0\win10-arm\publish”。 部署应用 部署要遵顼以下步骤 1. 将发布文件复制到 Raspberry Pi 怎么去复制文件随便,这里我用的是 WinSCP ,因为我自己管理 Linux 的时候就用的这个,习惯了。但在复制之前,要先启用 Windows IoT 的 FTP 管理。需要在 PowerShell 或者 Device Portal 运行命令: start C:\Windows\System32\ftpd.exe 接下来就是运行你的 FTP 管理工具,新建一个文件夹,然后把文件复制进去即可。 2. 配置防火墙 使用 netsh 工具配置防火墙,运行命令:(一开始被这个问题困扰了半天,怎么都访问不到网站,做一个允悲的表情...) netsh advfirewall firewall add rule name=”ASP.NET Core Web Server port” dir=in action=allow protocol=TCP localport=5000 3. 运行 切换到相应的目录,运行 .exe 即可。 问题 嗯,我的博客没有在 Raspberry Pi 上跑起来(但上面的东西都是对的),来看看异常 Unable to load DLL 'sni.dll' 这个问题通常引用一下 Nuget 包 System.Data.SqlClient 就好了,但在 Raspberry Pi 上没好... 我开始了在 GitHub 上翻 issue 的旅程,揪心的事情还是发生了,人家压根就没支持 arm32 ... 也就是说,不算定制镜像的话,只有 Raspberry Pi 是不支持的,Dragonboard 410c 是 arm64, MinnowBoard 是 x64 (允悲)... 让我们期待 Raspberry Pi 4 吧! 我又新建了一个默认的项目,部署在了 Raspberry Pi 上,这下没问题了... 但这一切并不能阻止我把博客部署在 Windows IoT 上,上虚拟机,终于成功了(摊手)...

优秀的个人博客,低调大师

企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件

前天小编带大家利用Python网络爬虫采集了天气网的实时信息,今天小编带大家更进一步,将采集到的天气信息直接发送到邮箱,带大家一起嗨~~拓展来说,这个功能放在企业级角度来看,只要我们拥有客户的邮箱,之后建立邮箱数据库,然后我们就可以通过网络爬虫将采集到的信息发送给我们的目标用户,而且每天都可以实现定时发送。 对于天气信息,我们采集的目标网站是搜狐天气网,信息内容如下图所示: 搜狐天气网 采集的方式仍然使用BeautifulSoup选择器,定义get_weather函数,具体代码如下图所示: 定义get_weather函数 采集到的信息内容有:当前城市、天气状态、当前气温、最低温、最高温、空气质量和PM2.5值。在代码块中使用了string属性、字符串格式化和lambda函数等知识点。在使用BS4匹配目标信息时,建议大家逐步进行代码测试,养成良好的习惯,这样不至于写完之后因代码报错而一头雾水。 采集到天气信息之后,接下来要写代码实现邮件的自动发送。定义send_email函数,具体代码如下图所示: 定义send_email函数 确认好对方(或客户群)的邮箱之后,放在列表中,等待被遍历,之后只需要输入本人的邮箱名、登录密码和邮箱服务器,便可以实现信息的自动发送了。本例中,小编以自己的搜狐邮箱为例,目标城市选择小编所在的城市大连,程序运行之后,将得到以下的效果图: 效果图 尔后登录自己的搜狐邮箱,然后就可以看到一封天气预报的邮件已经在自己的未读邮件中了,打开邮件信息,如下图所示: 搜狐邮箱收件箱 可以很明显的看到邮件内容和采集到的信息是完全一致的。这样就可以实现邮件的一键收发啦~~~ 那么是不是只有搜狐邮箱才可以实现邮件发送呢?当然不是啦,163网易邮箱照样可以,只需要更改邮箱服务器就可以了,效果图如下所示: 发送信息到网易163邮箱 点开邮件查看邮件内容,如下图: 网易163邮箱收件箱 同搜狐邮箱一样,接受到的邮件内容和采集到的信息是完全一致滴。 最后安利一下小伙伴们邮箱服务器和PM2.5的标准。 一、部分常用邮箱服务器汇总: 腾讯QQ邮箱发送服务器:http://smtp.qq.com 网易126邮箱发送服务器:http://smtp.126.com 网易163邮箱发送服务器:http://smtp.163.com 新浪免费邮箱发送服务器:http://smtp.sina.com.cn 搜狐邮箱发送服务器:http://smtp.sohu.com 雅虎邮箱发送服务器:http://smtp.mail.yahoo.com Gmail邮箱发送服务器:http://smtp.gmail.com 二、PM2.5值的参考值 空气质量等级 24小时PM2.5平均值标准值 优 35微克(ug)/每立方 良 35~75微克(ug)/每立方 轻度污染 75~115微克(ug)/每立方 中度污染 115~150微克(ug)/每立方 重度污染 150~250微克(ug)/每立方 严重污染 250及以上微克(ug)/每立方 从采集结果来看,大连的天气PM2.5的值为110微克,属于轻度污染的范围。 利用网络爬虫技术实现自动发送天气预告邮件,你get到了嘛?

优秀的个人博客,低调大师

eclipse + JBoss 5 + EJB3开发指南(3):使用Session Bean的本地接口

有时客户端程序(如JSP、Servlet)会和EJB组件运行在同一个JVM上,如在同一个J2EE服务器(JBoss、Weblogic等)中运行。这时就没必要 再通过远程(remote)接口访问Session Bean了,因为客户端和session bean都在同一个jvm上,只需要通过本地接口(local)访问即可。就象直接访问本地类一样(当然,不能直接访问EJB类,需要使用jndi和local接口来获得本地接口对象。当然,也可以通过remote接口来访问ejb,不过这样会有一些性能损失。就象在同一台机器上还通过socket进行访问一样,很多性能都损耗在网络上了。下面我们来举个简单的例子来看一下如何使用本地接口来访问session bean。 先建立一个session bean本地接口,代码如下: package service; import java.util.List; import javax.ejb.Local; @Local public interface ShoppingCart { // 添加某个商品信息 public void addCommodity(Stringvalue); // 获得客户购买的所有商品的纱衔泥 public List < String > getCommodity(); } 关于Session Bean的具体实现类与远程接口的实现类一样,读者可以参考 《编写有状态的SessionBean》 一文中的ShoppingCartBean类。 下面在Eclipse中新建立一个Web工程(工程名:JBossWeb),该工程需要引用MyEJB工程(包含EJB组件的工程),在WebContent目录中建立一个test.jsp页面,代码如下: <% @pagelanguage = " java " contentType = " text/html;charset=GB18030 " pageEncoding = " GB18030 " import = " java.util.List,java.util.Properties, javax.naming.InitialContext,service.ShoppingCart " %> <! DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd" > < html > < head > < meta http-equiv ="Content-Type" content ="text/html;charset=GB18030" > < title > Inserttitlehere </ title > </ head > < body > </ body > remote <% Propertiesprop = new Properties(); InitialContextctx = new InitialContext(); ShoppingCart shoppingCart = (ShoppingCart)ctx .lookup( " ShoppingCartBean/local " ); shoppingCart.addCommodity( " 自行车 " ); shoppingCart.addCommodity( " 笔记本电脑 " ); shoppingCart.addCommodity( " 液晶电视 " ); List < String > commodities = shoppingCart.getCommodity(); for ( String commodity:commodities) { System.out.println(commodity); } %> </ html > 访问本地接口要使用的jndi name应为“ ShoppingCartBean/local”。 启动JBoss,在浏览器中输入如下的URL: http://localhost:8080/JBossWeb/test.jsp 在Eclipse的Console中会输出如下的信息: 16 : 55 : 17 , 633 INFO [ STDOUT ] 自行车 16 : 55 : 17 , 633 INFO [ STDOUT ] 笔记本电脑 16 : 55 : 17 , 633 INFO [ STDOUT ] 液晶电视 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214453,如需转载请自行联系原作者

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册