首页
学习
活动
专区
工具
TVP
发布

竹清助手

专栏作者
57
文章
100076
阅读量
19
订阅数
善用API统一描述语言提升RestAPI开发效率
团队内部RestAPI开发采用设计驱动开发的模式,即使用API设计文档解耦前端和后端的开发过程,双方只在联调与测试时耦合。在实际开发和与前端合作的过程中,受限于众多因素的影响,开发效率还有进一步提高的空间。本文的目的是优化工具链支持,减少一部分重复和枯燥的劳动。
竹清
2018-08-31
1.8K0
【机器学习】 搭建模型第一步:你需要预习的NumPy基础都在这了
NumPy 主要的运算对象为同质的多维数组,即由同一类型元素(一般是数字)组成的表格,且所有元素通过正整数元组进行索引。在 NumPy 中,维度 (dimension) 也被称之为轴线(axes)。
竹清
2018-08-31
2.1K0
谈谈模板方法设计模式的使用
在项目中经常会遇到一个类的某些方法和另一个类的某些方法功能是相同的,只有部分方法是不同的。这个时候就可以使用模板方法来操作了。其实这种情况很常见:比如我们项目里面用到的基类,BaseActivity之类的。这种设计就是模板方法,是不是有点熟悉。。。下面来看看是怎么实现的把。 模版方法模式的结构   模版方法模式由一个抽象类和一个(或一组)实现类通过继承结构组成,抽象类中的方法分为三种:   抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现。   模版方法:由抽象类声明并加以实现。一
竹清
2018-08-31
4810
关于提高软件开发知识的建议
1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。” 其实这是一个来自国外教育领域的一个研究果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到哈! 2、一定要确定自己的发展方向,并为此目的制定可行的计划。 不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉走,先做做看”。因为,这样的观点会通过你的潜意识去暗示你的行为无所事事、碌碌无为。一直做技术,将来成为专家级人物?向管理方向走,成为职业经理人?先熟悉行业和领域,将来自立门户?还是先在行业里面混混,过几年转行做点别的?这很重要,它将决定你近几年、十年内“做什么事情才是在做正确的事情!”。 3、软件开发团队中,技术不是万能的,但没有技术是万万不能的! 在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在mm比较多的团队中。在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,多少你都要有技术基础。算我孤陋寡闻,我还真没有亲眼看到过一个外行带领一个软件开发团队成功地完成过软件开发项目,哪怕就一个,也没有看到。倒是曾经看到过一个“高学历的牛人”(非技术型)带一堆人做完过一个项目,项目交付的第二天,项目组成员扔下一句“再也受不了啦!”四分五裂、各奔东西。那个项目的“成功度”大家可想而知了。 4、详细制定自己软件开发专业知识学习计划,并注意及时修正和调整(软件开发技术变化实在太快)。 请牢记:“如果一个软件开发人员在1、2年内都没有更新过自己的知识,那么,其实他已经不再属于这个行业了。”不要告诉自己没有时间。来自时间管理领域的著名的“三八原则”告诫我们:另外的那8小时如何使用将决定你的人生成败!本人自毕业以来,平均每天实际学习时间超过2小时。 5、书籍是人类进步的阶梯,对软件开发人员尤其如此。 书籍是学习知识的最有效途径,不要过多地指望在工作中能遇到“世外高人”,并不厌其烦地教你。对于花钱买书,我个人经验是:千万别买国内那帮人出的书!我买的那些家伙出的书,!%全部后悔了,无一本例外。更气愤的是,这些书在二手市场的地摊上都很难卖掉。“拥有书籍并不表示拥有知识;拥有知识并不表示拥有技能;拥有技能并不表示拥有文化;拥有文化并不表示拥有智慧。”只有将书本变成的自己智慧,才算是真正拥有了它。 6、不要仅局限于对某项技术的表面使用上,哪怕你只是偶尔用一、二次。 “对任何事物不究就里”是任何行业的工程师所不应该具备的素质。开发windows应用程序,看看windows程序的设计、加载、执行原理,分析一下pe文件格式,试试用sdk开发从头开发一个windows应用程序;用vc++、delphi、java、net开发应用程序,花时间去研究一下mfc、vcl、j2ee、net它们框架设计或者源码;除了会用j2ee、jboss、spring、hibernate等等优秀的开源产品或者框架,抽空看看大师们是如何抽象、分析、设计和实现那些类似问题的通用解决方案的。试着这样做做,你以后的工作将会少遇到一些让你不明就里、一头雾水的问题,因为,很多东西你“知其然且知其所以然”! 7、在一种语言上编程,但别为其缚了思想。 “代码大全”中说:“深入一门语言编程,不要浮于表面”。深入一门语言开发还远远不足,任何编程语言的存在都有其自身的理由,所以也没有哪门语言是“包治百病”的“灵丹妙药”。编程语言对开发人员解决具体问题的思路和方式的影响与缚的例子俯拾皆是。我的经验是:用面对对象工具开发某些关键模块时,为什么不可以借鉴c、c51、汇编的模块化封装方式?用传统的桌面开发工具(目前主要有vc++、delphi)进行系统体统构设计时,为什么不可以参考来自java社区的ioc、aop设计思想,甚至借鉴像spring、hibernate、jboss等等优秀的开源框架?在进行类似于实时通信、数据采集等功能的设计、实现时,为什么不可以引用来自实时系统、嵌入式系统的优秀的体系框架与模式?为什么一切都必须以个人、团队在当然开发语言上的传统或者经验来解决问题???“他山之石、可以攻玉”。 8、养成总与反思的习惯,并有意识地提炼日常工作成果,形成自己的个人源码库、解决某类问题的通用系统体系构、甚至进化为框架。 众所周知,对软件开发人员而言,有、无经验的一个显著区别是:无经验者完成任何任务时都从头开始,而有经验者往往通过重组自己的可复用模块、类库来解决问题((其实这个论不应该被局限在软件开发领域、可以延伸到很多方面)。这并不是说,所有可复用的东西都必须自己实现,别人成熟的通过测试的成果也可以收集、整理、集成到自己的知识库中。但是,最好还
竹清
2018-08-31
5810
从实践的角度分析WebService两种方式SOAP和REST比较
在SOA的基础技术实现方式中WebService占据了很重要的地位,通常我们提到WebService第一想法就是SOAP消息在各种传输协议上交互。近几年REST的思想伴随着SOA逐渐被大家接受,同时各大网站不断开放API提供给开发者,也激起了REST风格WebService的热潮。
竹清
2018-08-31
9760
关于用户成长体系,一份不能错过的笔记
产品经理对于有关积分、成长值、等级等一整套的系统,有人叫用户成长体系,有人叫用户激励系统。笔者的理解是,他们都是一样的,不用纠结于字眼,关键还在于内涵的研究。
竹清
2018-08-31
1.6K0
深入理解 Laravel Eloquent(三)——模型间关系(关联)
Eloquent 是一个 ORM,全称为 Object Relational Mapping,翻译为 “对象关系映射”(如果只把它当成 Database Abstraction Layer 数组库抽象层那就太小看它了)。所谓 “对象”,就是本文所说的 “模型(Model)”;对象关系映射,即为模型间关系。中文文档: http://laravel-china.org/docs/eloquent#relationships
竹清
2018-08-31
2.6K0
常用的Git Tips
一、Configuration:配置 列举所有的别名与配置 git config --list Git 别名配置 git config --global alias. git config --global alias.st status 设置git为大小写敏感 git config --global core.ignorecase false 二、Help:常用的辅助查询命令 在git 命令行里查看everyday git git help everyday 显示git常用的帮助命令 git help -g 获取Git Bash的自动补全 ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc 设置自动更正 git config --global help.autocorrect 1 三、Remote:远端仓库配置 获取所有远端引用配置 git remote 或者 git remote show 修改某个远端的地址 git remote set-url origin URL Repo 查看当前仓库中的所有未打包的objects和磁盘占用 git count-objects --human-readable 从object数据库中删除所有不可达的object git gc --prune=now --aggressive 四、文件类操作 ,Cache:缓存,Track:文件追踪, 展示所有被追踪的文件 git ls-files -t 展示所有未被追踪的分支 git ls-files --others 展示所有被忽略的文件 git ls-files --others -i --exclude-standard git check-ignore* git status --ignored Manipulation:操作 停止追踪某个文件但是不删除它 git rm --cached <file_path 或者 git rm --cached -r <directory_path 强制删除未被追踪的文件或者目录 git clean -f git clean -f -d git clean -df 清空.gitignore git clean -X -f Changes:修改 Info:信息查看 查看上次提交之后的未暂存文件 git diff 查看准备用于提交的暂存了的修改的文件 git diff --cached 显示所有暂存与未暂存的文件 git diff HEAD 查看最新的文件版本与Stage中区别 git diff --staged dd:追踪某个修改,准备提交 Stage某个文件的部分修改而不是全部 git add -p Reset:修改重置 以HEAD中的最新的内容覆盖某个本地文件的修改 git checkout -- <file_name> Stash:贮存 Info:信息查看 展示所有保存的Stashes git stash list Manipulation:操作 Save:保存 保存当前追踪的文件修改状态而不提交,并使得工作空间恢复干净 git stash 或者 git stash save 保存所有文件修改,包括未追踪的文件 git stash save -u 或者 git stash save --include-untracked Apply:应用 应用任何的Stash而不从Stash列表中删除 git stash apply <stash@{n}> 应用并且删除Stash列表中的最后一个 git stash pop 或者 git stash apply stash@{0} && git stash drop stash@{0} 删除全部存储的Stashes git stash clear 或者 git stash drop <stash@{n}> 从某个Stash中应用单个文件 git checkout <stash@{n}> -- <file_path> 或者 git checkout stash@{0} -- <file_path> Commit:提交 检索某个提交的Hash值 git rev-list --reverse HEAD | head -1 Info:信息查看 List:Commit列表 查看自Fork Master以来的全部提交 git log --no-merges --stat --reverse master.. 展示当前分支中所有尚未合并到Master中的提交 git cherry -v master 或者 git cherry -v master <branch-to-be-merged> 可视化地查看整个Version树
竹清
2018-08-31
6490
推送通知策略分析
好的消息推送三要素:timely、personal、actionable。消息推送对用户留存率与活跃度至关重要。用户愿意打开消息推送,是对你的 App 的信任。 推送通知策略分析 智能手机的发展已经有近十年时间了,而在移动设备中,推送通知的潜力不可小觑。在进入 Slack 之前,Weiss 曾在 Foursquare 工作。Weiss 也曾是 Google 数据搜索项目的主要产品经理。对于推送通知的策略、投入、指标和准则,Weiss 有着深刻的智慧。 推送通知的发展 Weiss 总结了推送的三大特质:及时性、个人化和可操作性。在构建未来战略时,要考虑历史的车轮: 1. 推送通知的前辈 —— 电子邮件 在早期网络时代时,推送通知的形态其实就是电子邮件。电子邮件和推送之间有很多相似的地方。同样都是通过一个地址,让用户和网站进行开放式通信,甚至于电子邮件的「取消订阅」选项,其实就相当于通知中的推送设置。 2. 手机时代 当智能手机兴起后,用户越来越频繁地通过移动设备来完成娱乐甚至办公的需求,电子邮件在充当推送功能的这方面便开始没落了。作为互联网原住民的 90 及以后的用户,其实是很难感知到更早些时候的互联网习惯是 —— 每天检查邮箱好几次。因此当我们在回看历史的进展中,总会阅读到一些关于电子邮件如何成功进行营销的案例。 3. 来自短信的竞争 在手机上,推送通知是一则简短的文字。推送意味着需要很强的及时性,而不是像电子邮件一样发送出去后,几天内用户都未必会打开。另外值得关注的一点事,推送通知的实时性和对实时性的关注又是两个完全不同的概念,通过短信发送的通知,关注的优先级可能会更高。 4. 其他 App 也不是善类 当人们开始普遍使用智能手机时,屏幕基本是 4×4 网格,而现在,一个普通用户手机上大约有 55 个应用程序。对这么多的 App 来说,我们很难做到雨露均沾,不是每个应用都是 WeChat 或者 Facebook 这种国民级别的 App,因此这也就是推送通知变得越来越重要的原因。你的应用可能不会被用户经常使用,也可能不在主屏幕,甚至用户都可能忘了你,而一则推送则是唤醒用户的手段。 你不能依靠用户在天时地利时记起你,你得主动出击。 %image_alt% (Noah Weiss) 围绕以下原则构建推送策略 一则优秀的推送通知可能会考虑很多因素,比如设备附近的 WiFi、社会新闻热点或者其他重点组合起来考虑,再进行通知。Weiss 概述了他在开发推送通知系统时学到的基本经验: 1. 提升 App 的用户留存时间 从用户留存的角度来看,应用程序在脱离了它的功能之外,收益递减。因此在移动应用中,提高用户的留存时间是个不小的挑战。与此对应,现在已经有不少成熟的策略,诸如应用安装营销、社交渠道推广、SEO 和 SEM 等。然而真正的难点在于如何让新用户养成使用你 App 的习惯。 因此,在为你的应用打造所谓顶级用户体验之前,你得知道,仅仅当用户打开了这个应用程序才会有这个顶级用户体验。 2. 别让用户刚下载就想卸载 推送通知不仅是提升用户留存的好形式,同时在技术上也是必要的。在 iOS 平台,发送通知是必须让用户进行授权的权限,它不同于 Android 的直接授权,iOS 平台上下载安装完成应用后你必须提醒用户去设置这个权限。因此这成了一个关键节点,如果用户拒绝,那么很可惜,这个 App 对沉默用户将没有主动权,同时它的活跃度也会大幅下降。当然啦用户授权也不代表着这个 App 能怎样。 如果用户对这个 App 的推送感到厌烦,你能获得的最好的结果是用户主动选择某些通知处于活跃状态,而另一些通知保持沉寂。不过现实往往是残酷的,用户更可能到手机设置页面关掉所有推送通知,更坏的情况是直接卸载,而这个结果几乎是不可逆转的。 那么,应用的首次推送通知的体验将变得异常重要,否则用户就直接到设置界面投票了。 所以第一步是提醒用户进行通知权限的授权,如果用户答案是否定的,那其实后面也没什么关系了。它涉及用户忠诚度培养等其他东西,这是后话。鉴于通知权限的高额收益,如果你聪明的话,在这方面应该是非常谨慎的。 3. 三个指标衡量推送效益 用户拒绝通知权限请求的速度 卸载率 每百次操作 对于推送通知来说,你必须平衡用户积极参与和选择拒绝这二者之间的平衡。首先可以以卸载率和通知禁用率作为评估标准,对于消费者应用程序,卸载率低于 2% 是比较安全的。监控任何剧烈的数据波动都会有利于你的策略布置。 值得注意的一点事,要比较 iOS 和 Android 平台上的数据,因为 iOS 开放性远远低于 Android。同时,不同操作系统对于通知的处理方式也不一样,例如 Android 的通知可以显示内嵌照片,这可以提高 10% – 20% 的互动率。还有些通知是带有内置操作按钮,以便用
竹清
2018-08-31
1.4K0
JSON与XML优缺点对比分析
1. 定义介绍 1.1 XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应
竹清
2018-08-31
2.1K0
Love beautiful code? We do too.
Laravel是一个有着美好前景的年轻框架,它的社区充满着活力,同时提供了完整而清晰的文档,而且为快速、安全地开发现代应用提供了必要的功能。
竹清
2018-08-31
3K0
果拾网推荐高清图片资源
Unsplash https://unsplash.com/ 每隔10天提供10张高清图片供随意使用。 2.Pixabay(中文网站) http://pixabay.com/ 寻找免费且高质量的图片是件单调乏味的任务-主要是源于版权问题,署名要求或者仅仅是图片质量不够。因此我们深受启发而创立了Pixabay-一间超高质 量无版权限制的图片的贮藏室。 不论数字或者印刷格式,个人或者商业用途,您都可以免费使用本网站任何图像,并且无原作者署名要求。 3. Death to the Stock Photo ht
竹清
2018-08-31
1.3K0
Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】
2. http://www.golaravel.com/laravel/docs/5.0/
竹清
2018-08-31
3.4K0
Laravel 5 系列入门教程(二)【最适合中国人的 Laravel 教程】
我们将改变学习路线,不再像 Laravel 4 教程那样先构建登录系统。在本篇教程中,我们将一起构建 Pages 的管理功能,尝试 Laravel 的路由和 PHP 的命名空间。
竹清
2018-08-31
8570
php中的header跳转常用方式
header("Location:")作为php的转向语句。其实在使用中,他有几点需要注意的地方。 1、要求header前没有任何输出 但是很多时候在header前我们已经输出了好多东西了,此时如果再次header的话,显然是出错的,在这里我们启用了一个ob的概念,ob的意思是在服务器端先存储有关输出,等待适当的时机再输出,而不是像现在这样运行一句,输出一句,发现header语句就只能报错了。 具体的语句有: ob_start(); ob_end_clean();ob_flush();.........
竹清
2018-08-31
2.2K0
2015 Top10 最成功的网页设计趋势
  如果你打算在2015年重新设计你的网站,那么你可能有必要了解设计优秀网页的趋势。尽可能早地考虑网页设计特点是一个好主意。
竹清
2018-08-31
6590
优秀的标题党是怎么炼成的
网编经常被认为是网站搬运工,最大的技能是Ctrl+C、Ctrl+V,尤其是这点很伤害自尊好咩。试想一下,如果没有我们制造内容,推广运营人员怎么去向外界推广,甚至是商务人员如何去跟人谈合作呢。所以,请叫我神圣的内容产品经理。(请允许我傲娇一会儿)
竹清
2018-08-31
6340
作为运营必须明白的6类数据分析术语
数据分析在APP运营中的作用非常重要,也是每一个运营人员必须把握并不断提升的技能。而对于一个刚刚入门的运营人员来说,首先你要明白每一条专业术语的具体意思。下面笔者将运营中的常用术语分为六类,并一一解析。
竹清
2018-08-31
1.2K0
没有更多了
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档