php怎么搭建虚拟,自己如何开发一款app?
今年六月的时候,萌生了开发一个记账 App 的想法,想去用自己的 App 记账,管理收支。那时正好在英国是考试周,放假后,我回到了国内,准备去实现我的计划。没想到这暑假很快就结束了,在这个暑假中经历的太多的事,准备了要去美国读研的考试,遇到了生命中的另一半,同时,也将 Costuary for iPhone 带到了这个世界。
Logo
说道为什么要开发这样一个 App ,因为笔者在 UK 读书,市面上很少有记账 App 能够实现实时汇率的换算,带有这个功能的 App 也是操作繁杂。所以要自己开发一个,功能并没有那么复杂的,并且能够满足自己在国外和国内生活需求的 App,所以自己编写了 iPhone 的客户端,为了获取汇率和 Excel 导出,又用 Java 设计和编写了 Costuary 的后端服务器。
比起今年年初开发的 Flat Weather,这个项目的代码量大约是他的十倍,需要实现众多的功能和模块。
这篇文章将会介绍一下 Costuary 的功能与我开发过程中的一些心得。
效果图设计
说到设计,两年前,我还是一个 Android 开发者,Google 的 Material Design 是我的最爱,所以,Costuary 采用了 Android 5.0 之后采用的 Material Design 设计。其中掺杂了一些我自己的设计,因为 Material Design 的控件有时候操作繁琐。
早在 5 月份的时候已经零零总总的用 Sketch 画出了这个产品的 UI 和图标,之后开始了漫长开发的过程。
Sketch交互
与去年开发的 Android 版不同,iPhone 版的 Costuary 采用了底部导航栏的设计,相比于 Android 通常使用的 Navigation Drawer 的抽屉布局,底部导航栏的设计即使在右手操作 iPhone 的时候都不会太费力。
UX功能Features
多币种记账Costuary 支持世界上主要货币的实时汇率转换,所有外汇在统计时会转换成主货币的数目,方便查看花销。
日历视图日历视图能够很直观的反映出哪一天有消费和收入。
图表说到记账软件,量化消费的图表无疑是重要的一环,Costuary 提供了饼状图来视觉化一段时间的花销。
多账户可以建立多个账户来表示自己的银行卡,支付宝,现金等等。
月预算可以看出本月的预算还有多少。
导出到 Excel如果想要进行更加详细的分析,可以使用导出功能将账本导出到 Excel。
备份与还原允许备份账本内容到 iCloud。
开发
去把一纸设计变成真正的产品,这是一个独立开发者应该具有的能力。只会写代码不只是我唯一掌握的,能够去设计出来自己想要的应用并且将他实现才是我在做的事情。
这款应用的开发并没有想象中的简单,需要自己去实现大量 Android UI 控件,很多圆角,阴影,字体,要慢慢的去调整,让控件适合 iPhone 的屏幕。整个应用的背后有 3 个关系型数据库来储存账户,账本与各种汇率。与以前开发的 Flat Weather 不同,Costuary 会产生大量的用户数据,所以整个软件架构的稳定性变得异常重要,需要设计一些机制来防止数据丢失与损坏。
Development
为了实现 App 获取每日的汇率,并且在 iPhone 上能够实现账本导出到 Excel ,我设计了一个服务器后端来处理这些繁杂的实物。每次 App 启动后会与我的服务器来更新最新的汇率。当用户选择导出时,账本会被发送到服务器上并处理为 Excel 发送到用户的邮箱里。
说到服务器,就不得不提到用户隐私了,因为导出到 Excel 功能需要将账本传到我的服务器上做进一步处理,很多人会觉得我侵犯了他的个人隐私。对此,为了保护我的权益与用户的权益,我撰写了 Costuary 软件许可及服务协议与 Costuary 隐私政策,这是我作为独立开发者这么多年后第一次去写许可协议。
Agreement资费
与我的其他产品一样,这款 App 依旧是免费供大家使用的,作为独立开发者,我们都知道,绝大多数用户不会去珍惜一个免费的产品。就像 Flat Weather 一样,虽然获得了很多人的支持,但是也收到了很多人的吐槽。在 Costuary 中依然设计了一个的捐助按钮,如果大家使用之后喜欢这个应用,请支持我将他维护下去。
Please donate me尾巴
Costuary for iPhone 是我开发出来过最大的软件体系。我相信,能够独立开发出来产品的人懂得不只是编程。一个人要去经历项目的全部生命周期:规划,设计,开发,运营,维护,营销,这些是我开发这么多产品所学会的。
现在的 Costuary 只是第一个版本,还有很多 iPhone 的特性没有来得及开发,以后会跟上的,比如 iPhone X 的适配,3D Touch、Today Widget、Touch ID 等等。
以前在少数派撰稿的时候,很多读者会来问我如何学习开发,我也特地去写过如何去学习编程,但我相信,真正想去学习的,想去为这个生态贡献出自己的一份力的人,自己都会找到学习的方法。我的专业是电子电器而不是软件工程,但是我不后悔当年去学习编程。
最后,还是感谢在背后默默支持我的人,我会不断地改进与提升,如果 Costuary 真的在记账方面给予了你便利,这是我莫大的荣幸。
如果想要了解我的更多作品可以访问我的个人博客 MikeTech,或者在少数派中阅读我以前写过的文章。今年年初也在 iPhone 上写过一个天气 App,天气应用 Flat Weather 的设计历程。
对了,关于记账有什么用,如何记账,如何养成记账的习惯。为什么每个月末都捉襟见肘,除了没钱,很可能是对财务管理的能力不强。想了解这一方面的知识,不妨看一看我派的付费阅读栏目:从零开始做好个人记账
python是怎样的编程语言?
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
· Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
· Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
· Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
· Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
(https://www.runoob.com/python/python-intro.html)
主要用途
1、Web开发
提到web开发,大家脑海中闪现的一定是当前主流的开发语言Java,但你可能想不到的是python也可以做web开发,他由于开发迅速、部署飞快,变更起容易,代码量小深受开发者的喜爱,并且还有强大的框架来进行web开发。最经典的Django、Flask、Tornado,使程序员快速开发复杂的代码和应用,开发高质量的web程序。我们的金主知乎、豆瓣、Google、YouTube等企业均将python作为主要的开发语言,怎么样强大吧!!!
2、自动化运维
随着公司的发展、业务需求的持续并快速的增长,往往一个运维工程师通常要管理成百上千台服务器,运维工作变的重复、繁杂。那么将运维工作自动化,把运维工程师从服务器的管理中解放出来,让运维工作变得简单、快速、准确,这是使用python来做的持续高效的事,那么为什么选择Python呢,一来,大部分的开源运维工具都是由纯Python编写的,如Celery、ansible、Paramiko、airflow等,二来,Python与其他语言相比,更加优雅、明确和简单。
3、数据分析/可视化
作为数据分析的一大利器--Python,除了自身语言简洁高效易上手的优点,还有许多强大的功能。
支持非常多的库用于分析需求:Pandas:一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算);可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据;可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:一个强大的N维数组对象 ndarray;广播功能函数;整合 C/C++/Fortran 代码的工具;线性代数、傅里叶变换、随机数生成等功能。Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。
4、网络爬虫
浏览网页时,发现好多对我们有用的数据,但怎样从互联网上抓取对于我们有价值的信息呢,这个时候我们需要一款利器—python,比如:豆瓣的推荐电影列表、社区留言、音乐软件评论等
5、机器学习
机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据,输出是期望的结果,只是这个函数过于复杂,以至于不太方便形式化表达,机器学习的算法包括神经网络、深度学习、支持向量机及随机森林,基本道理和上述相似,应用场景很多:例如推荐系统、人脸识别及语音识别等。
对于机器学习库和Python框架,scikit-learn和TensorFlow算是两个比较热门的。下面是scikit-learn中文学习网站,大家可以访问学习
虚拟主机有什么用?
虚拟主机的应用范围较为广泛,目前大部分网站都是建立在虚拟主机上的。
虚拟主机大致有以下用途:
1)虚拟主机空间
虚拟主机非常适合作为中小企业的小型门户网站,节省资金资源。
2)电子商务平台
虚拟主机与独立服务器的运行完全相同,中小型服务商以较低成本,通过虚拟主机空间建立自己的电子商务、在线交易平台。
3)ASP、PHP应用平台
虚拟主机空间特有的应用程序模板,使用者可以快速的进行批量部署,是中小型企业运行ASP或PHP应用的首选平台。
4)数据共享平台
中小企业、专业门户网站可以使用虚拟主机空间提供数据共享、数据下载服务。对于大型企业来说,可以作为部门级应用平台。
5)数据库存储平台
可以为中小企业提供数据存储数据功能。由于成本比独立服务器低,安全性高作为小型数据库首选。
如何搭建个人私有云盘?
搭建个人私有云盘的方式很多,比如大名鼎鼎的黑群晖,还有UNAS、FreeNAS等,其中黑群晖属于“盗版”系统,数据丢失的风险比较高。这里简单介绍一下FreeNAS,功能上不弱于黑群晖。
1、准备工作一台电脑,最低4线程,2GHz的CPU,内存4GB及其以上。
系统磁盘不允许写入数据,可以将系统安装到U盘或者电子盘;数据盘可以使用多个,组成raid,提高可靠性。
2、安装过程到官方下载最新的freenas ISO文件,然后烧录到U盘或者光盘,另外需要一个U盘作为系统盘,从BIOS启动,装机,整个过程与安装windows系统差不多。
启动界面,如下图所示▼
选择系统盘,如下图所示▼
设置管理员密码,如下图所示▼
安装过程可能持续2~5分钟,安装完成之后要求重启,如下图所示▼
3、配置过程1)修改网络信息
使用设置的用户名和密码登陆到freeNAS的后台,依次点击【网络】【安全配置】,设置成静态的IP地址,方便后期使用和管理,如下图所示▼。
2)添加磁盘
freeNAS通过软件的方式实现阵列,依次点击【存储器】【卷管理器】,新建一块虚拟磁盘,如下图所示▼
虚拟磁盘创建之后,新建一个数据集,相当于一个虚拟目录,具体操作步骤如下图所示▼
3、共享设置经过上述的设置之后,点击【共享】,选择相应的数据集,填写自定义名称,设置相应的权限,如下图所示▼
4、使用freeNAS经过上述步骤之后,就可以在windows系统的网络窗口中看到FreeNAS了,点击进去就可以看到刚才添加的共享盘,映射之后就可以作为本地磁盘使用,如下图所示。
以上就是安装、配置、使用FreeNAS的过程,如果要实现远程访问,还需要设置DDNS等,这样才能在任何位置访问自己的私有云盘。
如果觉得对你有帮助,可以多多点赞哦,也可以随手点个关注哦,谢谢。网站开发流程?
网站开发流程:
一、了解需求与合作意想:
1、先要明确自己网站开发的目的,具体着重宣传企业文化和产品销售;
2、拟一个详细的网站建设大纲;
3、整理相关资料:如公司介绍、栏目设置等。
二、制定网站建设方案:
1、制定网站建设初步方案;
2、初步方案具体了解后,并提出相关看法及意见、建议等;
3、建站人员跟公司策划人员进行协商、修改、补充,以达成共识;
4、确定方案具体细节及费用。
三、签署合同
1、建站方与企业签订网站开发协议;
2、根据协议、协商,支付预付款;
3、客户提供网站相关内容详细资料。
四、完成设计:
1、我们的设计师进行网站风格设计和网站开发;
2、企业审核,并提出相关意见与想法、建议等反馈;
3、设计师根据反馈信息进行调整后,再交客户审核,直至客户确认完成设计;
五、建站工程师关于网站功能开发:
1、开发完成,上传测试服务器;
2、企业审核,并提出相关意见与想法、建议等反馈;
3、建站工程师根据反馈信息进行调整后,再交客户审核,直至客户确认完成开发;
六、发布:
1、企业确认可以进行发布;
2、相关后台培训、结款;
3、正式发布(网站开通);
4、进行网站备案、网站备份、后期维护等。