热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一款产物的从0到1之旅

从0到1打造一款产物是一种什么样的体验?为了回复这类知乎范的题目,让我来引见下我是怎样打造生意业务日记这款App的历程。须要提早申明的是整款iOSAPP的悉数事情都是我一个人完成的

从0到1打造一款产物是一种什么样的体验?为了回复这类知乎范的题目,让我来引见下我是怎样打造生意业务日记这款App的历程。须要提早申明的是整款iOS APP的悉数事情都是我一个人完成的。

全栈开辟的体验

全栈开辟(Full-Stack)究竟是什么?Google出的第一条结果说全栈开辟就是须要对前后端手艺都相识的人,同时能够把产物设想界面转化成代码。总之就是对开辟产物触及的范畴什么都须要相识的人。
《一款产物的从0到1之旅》
我们晓得当代社会的高效是竖立在合理的分工合作之上的,个别的才能有限,所以须要每个人发挥自身善于的才能,然后合作处置惩罚一个大项目。企业的涌现就是由于社会的这类需求,所以发生了上班的这个观点。这个话题议论起来很冗长,所以让我们看看全栈开辟又是为什么而涌现并盛行起来的。能够有人不以为全栈开辟很盛行,这里有一份StackOverflow的2015年调查报告(http://stackoverflow.com/research/developer-survey-2015):
《一款产物的从0到1之旅》
从调查结果来看一连三年全栈开辟都是位列第一的,不得不说愈来愈盛行。固然我们为什么在中国感觉不是很明显呢,看这张图就晓得了,由于国人接见StackOverflow照样比较少的,而且这个网站并没有被墙。
《一款产物的从0到1之旅》
全栈开辟为什么愈来愈盛行?我以为这是由于手艺自身的进步带来的,手艺发展已愈来愈开放而且模块化了,许多产物完整能够用现有的模块去重新组合二次开辟,许多关键手艺和算法都已不是什么障碍了,愈来愈盛行的Github和StackOverflow已表清楚明了这一点。连机械进修和人工智能这类嵬峨上的手艺都已有开源模块能够进修并运用,今后这个趋向会愈来愈强。个别的影响力正在被不断的放大,反而企业的影响力会下降,将来的社会中长途事情和自力事情者的数目会愈来愈多。社会对群体群集举行临盆产物的形式需求在下降。
那这类趋向的降临对我们个别有什么影响?起首不管你事情和IT有没有关联,你都会被互联网这类趋向影响的,所以有必要去相识全栈头脑对我们个别的影响。起首让我来诠释下我明白的全栈头脑:它应该是一种处置惩罚题目标才能。让我们设想两种头脑形式就能够看出这个定义的风趣之处了。A是你要打造一款产物,然后你须要相识制作这款产物须要的资本、手艺和流程。B是你须要进修一门盛行的手艺来找事情,然后你应用这个手艺来做一个Demo产物。A和B的区分在于A须要处置惩罚各范畴的题目,A是一种全栈头脑,以目标为驱动的。为了完美这款产物你或许须要相识产物的各个方面,这在之前对个别是不能够完成的使命,然则在这个不断被链接的天下里,每个人都变得更加专业,经由过程个别的创作与链接能够使你完成一项大工程,这内里以至你都不须要组建团队,一个人就能够完成产物的创作。这在接下来的部份我会引见我怎样在三个月内完成一款产物从0到1的历程。置信看完你会对全栈头脑有更深的明白。
那末全栈开辟的优点和害处有哪些呢?我以为优点是沟通本钱为0,沟通在一个大工程内里黑白常有影响的一个环节,许多时刻项目标失利和沟通有很大关联,根本缘由在于参与者太多,本钱已大于参与者合作的加成了。那害处就是什么事情都须要你来做,固然你能够外包一些不主要的部份出去,然则肯定要注意沟通本钱的增添。

产物设想

我要做的产物是一款有服务器端支撑的APP,现在我只做了iOS版本,将来能够要做Android和Web版本。这款APP已上架(http://diary.trade)。它是一款东西类的产物,所以我在开辟的时刻运用Native形式来开辟的,并没有效Web封装这类体式格局,由于东西类更适合用Native来开辟,内容类的用Web来开辟也不错。
这款产物前身是我设想的一个Excle版本的资金治理体系,所以不是很轻易,这促使我开辟了这款APP,由于我自身也是做二级市场生意业务的,所以这款产物自身就作为我的一个辅佐生意业务的东西,能够节约我许多时候。同时这类生意业务理念也禁受过时候的磨练,所以有必要做出来让人人用,能够进步你的生意业务才能和风险治理才能,这比选股择时更主要。
《一款产物的从0到1之旅》
这是设计中的版本功用设想。

项目治理

《一款产物的从0到1之旅》
全部项目设计治理是用OmniPlan制作的。APP开辟花的时候最长,由于我运用了Apple的Swift开辟言语,算是一遍进修一遍来开辟,所以进度要比设计的慢一些。

产物开辟

体系模块设想

APP自身由服务器端来盘算许多数据,和服务器经由过程TLS加密通道交流JSON花样数据,APP口令存储在iOS当地Keychain中,经由过程OAuth服务器猎取Access_Token来受权认证,API的设想是REST作风。
体系模块做了以下分别:
《一款产物的从0到1之旅》

数据库设想

数据库设想划定规矩:

  1. 斟酌到i365体系中不须要做庞杂的事件操纵,所以采纳MongoDB

  2. Document间采纳关联形式竖立衔接关联,少部份有内部关联的Document采纳嵌套形式竖立联络

《一款产物的从0到1之旅》
这是用MysqlWorkbench画的ER图,然则我终究采纳的是NoSql的MongoDB,所以这只是一个参考的图,这不是终究设想版本。

REST API 设想

《一款产物的从0到1之旅》
《一款产物的从0到1之旅》
此处我在Python碰到26个坑,开辟时候半个月,v1版本代码行数2K+。

UI/UX 设想

《一款产物的从0到1之旅》
此处的坑在于我没有学过设想,须要不断的画了再删再画直至惬意,固然我照样遵照了一些基础的设想准绳,这多是我之前看的设想的书本还没有忘的缘由。
Sketch的教程我运用的是网上的视频教程。

服务器运维

服务器是阿里云1G单核设置,连多历程都玩不了。用iptables做了些平安设置。
OS是Ubuntu。
Web服务器是Nginx。
Python用的是UWSGI处置惩罚。
数据库是MongoDB。
日记监控是Nagios。
此处碰到22个坑。

APP开辟

开辟平台:Mac OSX
IDE:Xcode
开辟言语:Swift2
此处碰到71个坑,开辟时候两个月,v1版本代码行数7K+。

Web开辟

产物和项目展现页面:
http://diary.trade
http://i365.tech
直接搜刮App Landing Bootstrap Template就能够找出许多免费的模版。

体系测试

API经由过程CURL来测试JSON数据。
APP是人肉测试。
今后斟酌运用单元测试。

域名

万网购置的几个域名包含cn、net、tech、trade。费点时候的就是去备案了,这个万网有很细致的流程申明。

产物反应

经由过程邮件、微博和微信民众号来接受用户反应看法,APP自身没有到场崩溃检测代码,今后能够斟酌到场。

追求协助

经由过程Google、Github、StackOverflow搜刮来处置惩罚题目。然则假如你想对某个主题举行体系进修的话能够经由过程在线MOOC课程。这个今后我会分享我在Coursera内里上的十几门课程。
《一款产物的从0到1之旅》

运营推行

产物案牍

这个就须要你多看一些产物引见案牍了,然后写多个版本,然后遴选一个最好的。案牍的关键是要抓眼球,也就是在最短的时候给潜伏的用户引见你自身,同时也要遵照平台自身的特点来推行,要和平台的逻辑和气质符合结果才棒。
《一款产物的从0到1之旅》
这是我给App Store写的产物案牍,斟酌到App Store的搜刮只能针对题目,所以题目的设想就很主要,这实在就是ASO优化的主题了。假如是Android的在Google的Play Store案牍你就须要斟酌内容的引见到场更多的关键词了,由于Google会搜刮它的。

运营

假如是东西类的产物对运营的需求倒不大,但假如是内容类的产物那末好的运营就很主要了,须要和用户举行互动,不断的制作话题,这方面能够多看看微博和知乎的热门话题发生的逻辑,多尝试并举行剖析改良。
热门话题平常都是经由精心设想的。

推行

推行有许多种体式格局,有钱的话那就有许多种暴力推行要领了,比方微信民众号的推行均匀一个用户都涨价至几块钱一名了,所以人人都在做吸收眼球的动作了,只需有关注者,都是钱嘛。以下是几种罕见的推行渠道:

  1. 邮件列表。优良的邮件列表推行的结果很不错,所以我们能够尝试去保护一个邮件列表,按期发送用户关注的内容,比方做一个PodCast或许周刊之类的Mail List。邮件列表发送商的话我平常用Mailchimp,发送成功率和模版及统计功用都很棒,另有挪动端的App。

  2. 微博。微博确实没有死,抖擞出了第二春。微博的优点在于能够制作流传话题,同时和用户互动轻易。

  3. 知乎。知乎须要专业的去运营,晓得某范畴的学问,然后在热门话题下多分享回复就能够不断积聚高质量的用户源了。

  4. 微信民众号。民众号的优点在于和用户的单向互动,有些不想让用户之间相识的内容须要运营的话很适合用民众号,由于用户之间不可见,能够防止许多题目。

  5. 社区。社区的优点在于主题的集中度很高,比方雪球、V2EX社区等,都是很专业的社区。

迎接关注我的微信民众号:improve365


推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文整理了Java中java.lang.NoSuchMethodError.getMessage()方法的一些代码示例,展示了NoSuchMethodErr ... [详细]
author-avatar
壹起等绿灯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有