目录

基础语法

编程技巧

网络

性能

测试

Android

待翻译问题链接(还剩x问题)

创业成立之初,无论从系统建设到企业办公,还是人力、财务服务等,都需要使用各种服务,尽管目前有各种平台提供快速开办企业服务,但在企业运营中,技术平台的搭建,企业内部沟通等到底有哪些不错的云服务可以使用呢?技术帮总结如下:

1、技术平台云服务

  • 大多数创业公司初期都使用阿里云,符合业务需求,配套功能完整,而且安全,缺点是只能国内使用;整体申请办理很快,流程服务较好,域名申请,备案,以及一站式服务,价格码吗?不能说有多大优势,但最主要的是背靠阿里的品牌。同时阿里云也推出各种电商云,金融云,并且都是说明是按业务类型定制,在安全新能方面更优秀,笔者认为这也是一种营销方法,技术上到底区别多大,个人认为一般吧。如果你是金融,SAAS,大数据平台等,整体技术云服务的搭建还是要有个专业的系统运维工程师。
  • UCloud技术不错,和其它一些云服务器商的结合也比较好,有专人客服对接,响应及时,但客户基本集中在游戏行业,对泰坦云所处的旅游行业,目前还没有很成熟的经验支持;
  • 青云的私有云比公有云有名,公有云优势不大,圈子里虽然口碑好,但对泰坦云的需求来说,亮点不是很出众;七牛和又拍云,都是专做云存储的服务商,七牛大多数节点都是自建,自己可以控制,所以服务质量有保障;又拍云有自建有合作,合作多是采购传统CDN厂商的资源,外部资源比较难把控,服务质量一般。

基本上国内使用的就是这些了。使用云服务主要就是系统维护不用考虑,对创业初期和业务量不大的公司来说,是一种非常好的方案。自购服务器和租用IDC机房一次性投入费用高,而且运维对技术要求高,采用云服务,初期一般几台服务器就够了,简单的业务按照技术要求两台,一台数据库,一台应用系统,如果用到存储,在考虑才其他七牛和又拍云,整体初期一年的费用单台机器5000-6000元,支持各5M带宽就够了。除此之外,还有金山云,腾讯云等。

2、网络信息安全服务

  • 主流还是使用阿里云盾居多,另外安全宝也是不错的选择。
  • 对安全要求较高的金融平台、大数据平台,可以采用乌云、crowdcurity;在使用过安全服务中,特别是乌云的众测,这种众智分包模式经济有效,很可能是未来的趋势。
  • 梆梆安全,服务质量效率等都挺实用的。
  • 漏洞盒子、唐朝、知道创宇也是不错的选择。

3、数据统计分析

  • 移动端目前在使用友盟(主流)JPush, Appniesimilarweb,网页端在用百度统计。
  • talkingdate作为数据统计和分析第三方工具,Talkingdata的一些数据报告还是不错的。
  • GrowingIO最近比较火的公司,也是不错的选择,当然还有付费版,APP的数据统一。

4、短信服务

短信服务就会跟多了,很多短信第三方平台都提供,一般充值几千就可以,短信主要用来注册,验证码,订单通知用,一般一条6-7分,低的可以做到4分左右,主要看你的用量。

5、IM服务

  • 环信,大家应该都知道,国内做IM比较早的,目前都使免费(在一定条数内),不过当IM通讯量很大时,会出现丢消息等问题,还需要花时间解决,对于初期够用了。
  • 融云,极光,网易云信,亲加云等有不少选择。

至于具体效果如何,要看你的应用情况,这些云服务在具体对接的时候都要仔细调试,如果你的业务复杂或者有特殊要求,开发还是需要花很多时间的。

6、视频服务

  • 百度视频云和腾讯视频云个人认为是不错的选择,无论从基础设施还是开发者服务都是非常成熟的,可以很快对接各种视频应用(在线课堂,视频点播,视频直播),不过这些平台都使按照流量付费的,后续CDN什么服务我们都不用考虑。非常适合初期快速集成开发,但是还是要花时间对接的。
  • CC视频也是不错的选择。

7、企业沟通协作

  • QQ、微信、邮箱(网易,腾讯基本是首选)是肯定要的。
  • Tower,TeamBition是比较合适的团队项目协作工具。但基本不同的部门使用的工具不同,、产品、设计师在使用Teambition,Axure,Xmind。产品使用原型图设计使用Pencil工具,Axure,Xmind,墨刀等,页面设计使用Photoshop、Dearmweaver,源码编写使用UltraEdit和Sublime Text,Notepad++,代码数据上传工具使用FTP,Firebug。
  • 钉钉阿里主推的,也是不错的企业管理工具,打卡,考勤,批假和工作日志等功能学习成本低,公司员工上手较快。缺点是在项目管理功能方面感觉还不是很完善。
  • Trello,项目推进节奏良好;选择标准是使得跨部门协作高效。
  • 市场部门主要有石墨、Trello 等,会用易企秀、MAKA、活动行、活动树等制作和发布活动;运营部门主要是逸创云客服等。销售上使用销售易,分享销客(当然这个要根据自己的业务情况)。
  • 技术人员的开发工具根据不同的开发语言不同选择比如:VS2015,u3d,XCODE等常用开发工具Sublime,Xcode,Android Studio,SourceTree,RubyMine,WebStorm。
  • 代码托管使用Github,这个用的多,测试主要用Testin。
  • 测试用JIRA等BUG管理系统。
  • 源码管路用VSS,SVN等。

8、人力招聘

  • 主要渠道是网招,拉勾(人少,质量还好)、智联招聘(人多,质量较差)、前程无忧(人不多,质量较差)、Boss直聘(人少,质量较高,但是沟通直接,爽约率低)。
  • 找程序员可以用拉勾网、100offer。

9、商标注册

  • 知果果,对于工商的注册流程掌握度高,专业性强。
  • 法律服快法务,服务很好。
  • 社保51社保,推广做得好啊,还不错,便宜。

10、其他

  • 除此之外,Ping++是一个帮助一切移动应用,快速接入第三方支付平台的工具,它主要完成三个工作:
  1. 在15个工作日内,帮助开发者完成银联、微信、支付宝所有渠道的支付审核,获取支付权限;
  2. 让开发者能够通过短短的7行代码,就嵌入Ping++的SDK,来进行支付功能的设置和管理;
  3. 为微信、银联和支付宝提供统一的支付数据管理后台。
  • Face++,SENSETIME提供人脸相关技术的在线API服务给开发者和企业使用,可以快速开发图像识别,人脸识别,美颜(映客采用)。
  • 还有很多第三方成熟的云服务,一登(刷脸登录),海妖(情绪识别)等等,目前大多数创业者在初期技术上尽可能集成,不过这也是花时间的,不是简单的拼凑,尽管很多都说几天完成,其实都是看第三方的服务是否稳定成熟,以及技术人员的技术能力。
  • 有赞 ,微盟,ECSHOP等很多第三方的电商,微商,微分销系统其实都很成熟,比较适合初期,最好不要定制,有什么功能就用什么,否则费用非常高,不过一旦你做的电商无论B2B 还是B2C,最后都要构建自己的系统,因为你的用户数据,业务数据,财务数据都在系统上,除非线上业务只是你的补充。

个人推荐的产品&工具

  • 推荐一个MAC 上的小工具,马克飞象,马克飞象是一款专为印象笔记(Evernote)打造的Markdown编辑器。
  • akatime,统计程序员每天写了多久的代码,生成报表,每天、每周会发送邮件到指定邮箱。
  • Onenote。最佳资料整理工具,功能无比强大,免费,可惜在国内速度有点慢。

文/苗刚

世界上编程方面的最大的出版商 Packt Publishing 最近对 11000 名访客进行了调查,根据调查结果,Python 和 JavaScript 是当今最流行的编程语言,而 Java 紧随其后,排名第三。

调查内容包括开发者使用的编程语言、喜欢的框架、薪酬信息等。调查显示,如果就编程人员每天都要使用的语言来看,当今前10名的编程语言排名是 Python、JavaScript、Java、PHP、HTML(虽然不算编程语言)、 C#、SQL、CSS(也不算) 、C++ 和 R。

从之前的类似调查中可以发现,所有的调查均显示 Python 和 JavaScript 得到了极大流行。

Packt Publishing 的调查发现,编程人员薪水和以上排名完全不同,诸如 bash、Perl 和 Scala 语言编程人员获得的年薪平均超过了 8 万美元,甚至 Bash 编程语言人员的薪酬达到了 10 万美元,而 PHP 和 C 语言编程人员年薪几乎没有到达 4 万美元。

而在 Web 开发人员使用的工具方面,AngularJS 取得了第一,其次是 Facebook 的 React.js 框架、Node.js、Docker、Laravel、 Bootstrap、WordPress 和 AWS。

过去几年最流行的新编程语言排行榜当中,毫无疑问 Swift 高居榜首,其次是 C#、Go、Rust 和 Elixir。

新的框架方面, Docker 也如预期的那样得到第一,Apache Spark 和 AWS 分列二、三名。

更多的调查结果,可以看看 Packt Publishing 的报告(需注册)。

Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:

  1. Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
  2. 内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
  3. 性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。

具体为什么会出现上面的结论,以下为收集到的资料:

1、数据类型支持不同

与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多。最为常用的数据类型主要由五种:String、Hash、List、Set和Sorted Set。Redis内部使用一个redisObject对象来表示所有的key和value。redisObject最主要的信息如图所示:

redisObject

type代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存储的是一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则代表实际redis内部是按数值型类存储和表示这个字符串的,当然前提是这个字符串本身可以用数值表示,比如:”123″ “456”这样的字符串。只有打开了Redis的虚拟内存功能,vm字段字段才会真正的分配内存,该功能默认是关闭状态的。

1)String

  • 常用命令:set/get/decr/incr/mget等;
  • 应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类;
  • 实现方式:String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr、decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int。

2)Hash

  • 常用命令:hget/hset/hgetall等
  • 应用场景:我们要存储一个用户信息对象数据,其中包括用户ID、用户姓名、年龄和生日,通过用户ID我们希望获取该用户的姓名或者年龄或者生日;
  • 实现方式:Redis的Hash实际是内部存储的Value为一个HashMap,并提供了直接存取这个Map成员的接口。如图所示,Key是用户ID, value是一个Map。这个Map的key是成员的属性名,value是属性值。这样对数据的修改和存取都可以直接通过其内部Map的Key(Redis里称内部Map的key为field), 也就是通过 key(用户ID) + field(属性标签) 就可以操作对应属性数据。当前HashMap的实现有两种方式:当HashMap的成员比较少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,这时对应的value的redisObject的encoding为zipmap,当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。

hash

3)List