首页 » 智能家居 » 从零开始系列用C做软件产品:私人日记(一)

从零开始系列用C做软件产品:私人日记(一)

深圳海外装饰工程通讯 2025-03-25 0

扫一扫用手机浏览

文章目录 [+]

可能是个人性情缘故原由,我特殊不能接管每天做重复的事情,几个产品的掩护常常会让人觉得呆板;当然也可能是年事的缘故原由,毕竟今年已经42了。
现在溘然觉得已经损失了连续研发新软件产品的激情,之前也想做一款游戏,但是游戏更主要的可能是美工,自己也没有太多的新意,开拓周期也会特殊长,属于费力不谄媚。
不过人总得找点自己感兴趣的事情来做吧,不然活着干嘛呢?炒股是自己的兴趣之一,之前是想通过程序量化来实现自动炒股,但是经由自己反复试验表明,在海量数据样本面前,单靠技能指标胜率基本在50%旁边,跟抛***差不多,这条路走不通。

其他物色了很永劫光,觉得还是自媒体这块比较适宜自己。
也有兴趣想考试测验下,一是自己乐意写一些笔墨,二是写出的内容会有人看,能够与人互动,三是如果别人认可你的内容,还会成为你的粉丝,然后就能得到更多的推举。
这个机制挺吸引人,唯一不敷的是,自己除了编程其他方面都不大善于,而编程方面的内容可能又比较小众,未必能得到预想的效果。

从零开始系列用C做软件产品:私人日记(一) 从零开始系列用C做软件产品:私人日记(一) 智能家居

做软件开拓教程的想法,起因还是前几天发了几篇关于C#的文章,结果引来了不少的评论,个中有几个用户在评论中提到想学c#编程。
我回忆起了我学习编程的道路,刚开始根本没有百度,全凭自己去啃MSDN,然后自己在电脑上一点点码字调试,但是手册毕竟只能学到根本,真正的困难是在项目上,把详细的事物抽象化,碰着问题如何办理问题,这才是编程的核心。
我的技能可能很拉胯,但我的项目履历和做产品的履历比较丰富,这是很多学校、培训机构都不具备的,我如果能把这些履历融入到软件开拓的教程中,会不会让教程变得更加生动呢?哪怕末了只有一个人因此爱上了编程、学会了编程,那我以为我的努力也没有空费,即便一个人也没有,我也算是把我人生的一部分事情做了总结,留在了互联网上,也算是对这个社会做一点浅薄的贡献。
想到这里,我顿时又燃起了久违的兴趣,那就干吧:)

从零开始系列用C做软件产品:私人日记(一) 从零开始系列用C做软件产品:私人日记(一) 智能家居
(图片来自网络侵删)
当前主流的编程措辞

在教程开始之前,先给大家看下2021年8月TIOBE上的编程措辞排行榜。

大致先容下排名前五的措辞:

第一的C和第四的C++常日会把它俩归为一类,合计占比近20%。
C出身于1972年,后来在C的根本上衍生出了带类的C,到了1983年,正式命名为C++。
目前市情上绝大部分操作系统的底层都是C/C++写的,乃至绝大多数编程措辞的编译器也是C/C++编写的。
跨平台、效率高是最大的优点,缺陷则是须要对底层有很深的理解,导致学习周期、开拓本钱都比较长;紧张运用处景是做底层。

第二的Python占比近12%。
出身于1991年,它是一门脚本措辞,用C写的。
它的最大优点是能够很方便的调用各种其他措辞写的东西:比如C/C++写的dll、Java和c#写的类、乃至js脚本,它都能调用。
它的定位更像个包工头,我自己虽然干不好,但是我能找到各种工人,要啥有啥;当然缺陷也很明显,实行效率不高。
以是一样平常用于研究、运维等对界面和效率哀求不高的领域,比如人工智能、机器学习、大数据挖掘、爬虫、黑客等等,做软件产品就别指望它了。
其余就我个人喜好而言,很不习惯用空格数量来决定语句层级关系,有人开玩笑说得用游标卡尺去量每行的空格数量,没那么夸年夜,但确实废眼睛。

第三的Java占比近11%。
出身于1995年,可以说是目前在海内互联网大厂们用得最多的措辞。
最大优点是跨平台、开源有很多现成的代码、会的人多、政府指定等等,用行内人说便是生态好,缺陷是运行效率稍低,内存开销较大。
Java目前运用较多的场景是做大型网站、企业运用、手机运用等,Windows平台下的个人运用体验较差。

第五便是本日我要先容的主角C#,占比5%多点。
出身于2002年,就措辞本身来说,在我看来目前的C#已近乎完美。
一定要说缺陷,那也是外在成分导致的:一是开源太晚,导致现成的代码太少、干系人才也少,所谓生态太差;二是跨平台还没有形成闭环,虽说跨平台大一统方案的.net 5已上线,但界面MAUI要2022年才上线。
在之前微软固执维系windows的那10年,Java已经霸占了企业运用的大部分市场,余下的小企业基于本钱考虑很多选择了php,直到近几年微软终于觉醒了,亡羊补牢,未为晚矣。
C#目前紧张的运用处景是金融、医疗行业这些重视安全又不差钱的行业,再便是游戏行业紧张用Unity。

为什么要选择C#作为传授教化措辞?

1)功能丰富且语法幽美。
在伟大的Anders Hejlsberg带领下,这门措辞被雕琢得更像是一件艺术 ,合营宇宙最强的代码编辑器Visual Studio,切实其实是无敌一样平常的存在。
利用它的心情也是愉悦的,不像某些其他措辞,看着就乱糟糟,影响心情。

2)代码性价比高。
比较其他措辞占用内存少,运行效率高。
花费更少的韶光学习,更快的开拓效率,可以得到靠近C/C++的性能。

3)跨平台可期。
这几年微软对跨平台及开源不再自持,投入力度空前。
随着.net 6、MAUI大一统的跨平台产品相继推出,未来c#跨平台的趋势将彻底旋转。
一份c#代码可以运行在不同平台的时期即将到来。

4)游戏界的扛把子。
Unity已经成为游戏行业当之无愧的老大了,C#与之完美的领悟,如果想走这个方向,C#必须要学习。

5)独立开拓者首选。
用C#可以编:windows工具软件、windows做事、ERP系统、工控系统、爬虫工具、GDI绘图、各种网站、微做事、游戏、苹果安卓下的手机运用等等我都列举不过来,基本上你能见到的程序,都可以用它编出来,而且高效。
如果你学习编程的目标是去企业找份事情打个工,那么在目前海内就业形势下选择学习Java是明智的选择;但如果你的目标是像我一样成为一名独立开拓者,做一款自己的软件产品或运用,那C#是最佳的选择,由于它性能优胜,且无所不能。

此系列教程的特点?

在网上也看过一些C#教程,很多都像用户手册一样,挨个语法说一遍,讲得倒是挺详细的,但是你废了很大功夫看过之后还是不知道能用来干嘛,没有产品和项目相结合的履历,做参考书还不如百度精准,没什么实用性。

以是我的想法便是以做一个软件产品为目标,由产品产生功能,由功能驱动设计,由设计辅导开拓,然后才是编码,边做边学,学甚至用才能加深理解,一通百通。

其余,在很多大厂中,每个员工都是螺丝钉,工种单一,码农也不例外。
比如做前真个就一贯做前端,可能连做后真个机会都没有。
我的教程虽然功能可能相对大略,但麻雀虽小,五脏俱全,席卷了产品开拓中的各种事情,一可以增加理解,让团队合营更加融洽;二可以帮助自己选择更适宜的工种,提升晋升空间。

此系列教程的传授教化内容?

这个软件产品是要做一个私人日记,或者也可以算作是一个私人的博客。
终极的目标识可以同时在电脑端、网页端、移动端利用,这三端都可以对日记内容进行增编削查,并实现数据同步。

软件的开拓周期大概分三个阶段:

第一阶段、windows单机版

目标是实现软件单机版的基本功能,做好数据定义、类库等,为后续学习与开拓打根本。

在此阶段,可以节制最基本的编程观点、抽象设计、操作系统事理等,知识点包括但不限于:界面布局、控件事宜、文件读写、类库设计、数据库设计、程序调试、源代码管理等编程干系根本。
无论往后往哪个方向走,抽象设计、操作系统的干系知识还是要节制的,只有理解了操作系统的运作事理,才能更好的利用编程技能。

第二阶段、B/S架构网络版

目标是实现在不同设备的浏览器上随时随地登录软件进行操作,用户数据保存在做事器。

web端发展的太快了,像我这种老人已经有点跟不上变革的速率了,我到现在一些项目还仍旧利用asp.net+jquey来做web项目,也没以为有什么不好,当然用做传授教化就后进了。
微软的web架构由最初的asp发展到asp.net,然后前端随着javascript的大发展,尤其是jquery和ajax涌现之后,前端再不因此前大略的html+css了。
于是各种框架相继涌现了,mvc、Vue等等还有很多我叫不上名的。
这块可以发展的方向有很多,也很乱。
现在微软主推的是blazor,以webassembly的办法运行在网页端,这个又是一项走在前沿的技能,可以跨平台支配,我比较看好它,以是选它来作为web项目的开拓框架。

这里会学习到web基本观点、html、js、css、web接口、json、blazor等web干系知识。

第三阶段、多端跨平台

目标是实现同一份代码以原生程序分别运行在不同平台(Windows、Mac、Android、IOS、Linux)。

前面两个阶段实现的是单机版和Web端,但它们各有缺陷,单机版只能在windows系统下运行,用户群受限;Web端只能在浏览器上运行,用户体验稍差。
而此阶段是要在单机版的根本上,增加对所有客户真个支持,win、mac、linux系统下的主流设备,如电脑、手机、平板等主流设备下均可运行。

初步操持是等MAUI发布后利用.net 6,在单机版的根本上进行重构。
这块领域对我来说也是全新的,我也须要不断的摸索,跟大家一起分享履历。

此系列教程的更新操持

我预估下来教程长度可能会超过百节,我之前没做过如此完全的系列教程,每一步都是不断摸索中前行,以是更新进度估计会慢一些。

初步操持是每周更新1-3篇,当然详细还得看实际情形,毕竟生活有各种各样的琐事。

此系列教程的代码

末了,本项目为开源项目,代码内容会随教程实时更新,大家有兴趣的话可以关注我,以得到最及时的更新。
私信:私人日记 可以来获取此项目在Github的链接。

标签:

相关文章

从零开始系列用C做软件产品:私人日记(一)

可能是个人性情缘故原由,我特殊不能接管每天做重复的事情,几个产品的掩护常常会让人觉得呆板;当然也可能是年事的缘故原由,毕竟今年已经...

智能家居 2025-03-25 阅读 评论0

准大年夜学生们入学必备物品清单来了!

学季近日,高校陆续官宣了新生报到韶光,准大学生们即将踏入大学校园。2023级的大学生们,是否已整装待发?新生入学该准备哪些东西?哪...

智能家居 2025-03-25 阅读0 评论0