当前位置:网站首页>为了省钱,我用1天时间把PHP学了!
为了省钱,我用1天时间把PHP学了!
2020-11-06 01:17:00 【bugstack虫洞栈】
作者:小傅哥
博客:https://bugstack.cn
沉淀、分享、成长,让自己和他人都能有所收获!
一、前言
你在通往架构师的路上吗?
程序员这个行业就像是在不断的打怪升级,突破每一阶段的瓶颈期。
从毕业前想通过实习拿到offer、毕业后想通过试用期到转正留下、转正后程序员想做到高级开发、从高级该开发想做到架构师、从架构师想做到更高的总监或者CTO。往后的路越来越不容易,既需要需要个人不断的沉淀学习,也需要一定的机遇机会。
在这条路线上架构师是一个瓶颈期的重要转折点,因为这个阶段远不止个人的技术栈学习,还有很多其他能力,几乎可以包括的有如下几点;
- 有中大型项目开发落地经验
- 有可靠的交付质量和统筹能力
- 能解决复杂项目的架构设计和推进执行
- 有一定的技术广度和深度,改的了bug,处理的了事故
- 定得了规范、设计了架构
- 有一定的认知范围,熟悉业务、产品和运营,了解运营规划和业务发展
- 带得了小组,推进项目落地和组内技术成长
- 有一定的专业影响力,能用技术创造价值
- 有紧急情况的应对能力
- 流程规范制定、方法论、开源项目的相关经验
一个技术架构师要求可能不只这十点,还有很多软实力。但这些很难通过培训或者上课学来,因为这些能力都是实操经验,需要长时间的磨练。
其实即使没有架构师也不会缺少系统架构,这样的小组并不需要养一个架构师,很多都是成套的快速搭建的技术,尤其像 SpringBoot
一整套服务,很适合小型公司使用。
但如果有非常复杂的系统架构和业务场景设计,包括几十个系统的分组安排开发,提供支撑上百万的QPS、秒杀的活动瞬时就有几万、以及需要随着业务发展扩展到可以支撑几百万DAU的后台服务。就需要架构师来整体把控,因为他可以从下单、到交易、到支付、到结算、到活动、到玩法,怎么支撑、怎么设计,提供出一整套的解决的方案,那么这个体量复杂程度的系统,就不在是一个小作坊团队能承担下来的了。
二、技术栈闭环学习
你的技术能力足以支撑整个系统吗?
其实很多程序员大部分都被局限在产品的PRD里,除此之外对整个全局并没有太多的认知。而且只是在技术范畴内也同样被限定在某个语言下,比如后端研发基本开发不出一个完整的前端页面、前端同学同样也写不出后端接口。
当然在某个技术语言下深扎不一定是什么坏事,甚至可能还有一番创造和成绩。只不过缺少了全局的认知和了解,在某些时候会被限定到一个瓶颈期里,在想成长到下一个阶段就很难了。
或者更简单的说,你能用你所会的技能搭建出一个技术博客吗,并运营起来。如果你没做过这件事,那么从你开始到完成你会发现。你需要的不只是java,还有UI设计,还有前端页面,还有服务器等等一套技术来支撑。同时,在某些时候你会为选择用 java
还是其他语言而纠结,因为个人博客的服务器也是要付费的,java
服务器的费用通常会贵一些。
所以,如果你的将来想自己做点什么,就不要只被局限在某个技术里,也不要被局限在某个领域中。了解了解业务
、熟悉熟悉运营
,也尝试学学UI
,这些知识的学习都远比浪费可靠。
三、我那折腾的成长经验
讲道理,其实我是一个很爱折腾的程序员,当然别的事上我也爱折腾,尤其发明创造类的。
小时候我会把很多东西拆喽,拿里面的电机等小东西,在做一些玩具。比如;可以下水的电动小船、可以滑冰的小冰车、还有一些懒人小工具等。
随着这样的性格到学编程也是这样爱倒腾,从初学编程就想着要自己做网站。从只会个html就开始买域名、备案、上线网站、装b分享,这一套组合拳就开始折腾到现在。直到有了目前这个稳定的技术博客网站 bugstack.cn 。这些让我学到了很多额外的知识,也拓展了很多的黑技能。
1. 我有一个博客引流
假如你有一个流量还可以的技术博客
,又新申请了一个公众号,想把公众号做起来。那你会怎么做?
是不会想到在技术博客找块显眼的区域,放置一张公众号二维码?但这样的方式其实并不会有太多人关注,从现在比较流行话的来说,关注不关注并不会影响到用户的利益。
所以,我们更希望的是在保证用户体验的情况下,尽可能的引导用户主动关注。那么最好的方式就是用户阅读文章时提醒关注,如果没有关注只能阅读文章的30%内容,关注即可阅读全文。就像下面这样的效果,如下;
这个效果最终的结果就是用户在阅读文章时,可以引导用户关注公众号发送指定的编码进行解锁,解锁后允许用户阅读,流程如下;
2. 为了引流要付出多少成本?
这是使用Java语言,开发一个把博客用户引流到公众号服务,一年大概的成本。当然不同的云服务厂商的价格以及活动时略有不同,但按照每年的平均价格计算,大概会在1800.00元左右。
这个钱也不是太贵,但放在整个成本核算的服务里,这样的投入就是蛮高的了。除非你的公众号收入可以抵消这部分投入,并且还有一些收益那么是可以的。另外这里我们还没有计算人工投入,对号主
就是那个多种角色的人工:产品
+ 研发
+ 视觉
+ 业务
+ 运营
= 号主!
可能你不知道,Java服务是贵一些,但还有php的服务器便宜呀,价格差多少呢?以php的虚拟机为例,一年的价格是198元。而且这个php虚拟机还包括了1G的数据库资源,与java服务器相比确实很省钱。
所以,选择php开发这套公众号与博客打通的后端服务,就显得非常适合。
3. 使用PHP搭建DDD四层架构
好多年前我也自学过PHP,得益于那句:”php是全世界最好的语言!“。
因为在这条学习的道路上爱折腾,所以C++、C#、PHP、PLC、中继器等也都开发过。但太久不用所以也忘的7788了,可为了能省钱我用一天时间把PHP又学会了!
其实有了一定的编程经验,语言之间是有一定的相似度的。你只要按照你的想法实现即可,任何一个语言都会提供给你相应的实现方式,不知道?
搜就可以!就像下面这个PHP的领域驱动设计四层架构,与Java很是相似。如下;
咳咳,这里我没有选择使用php的一些框架,例如 thinkphp、laravel等。毕竟框架对我来说开发一个公众号的后端服务,还是稍显笨重。按照我的想法逻辑,搭建一个DDD四层架构按照我实现Java的方式实现PHP代码即可。实现方式也会非常快,最后只花了1天时间就把整个服务写完并部署上。这包括;代码开发、数据库配置、服务上线、接口切换、SSL、跨域等。所以,我一直想说不要只做个工具人,要铺设的全面一些!
例子,让你看看现在的PHP与Java像不像;
- 定义方法名称用function,
public function entry()
- 构造函数
public function __construct()
,可以初始化一些信息 - 字符串用点连接,
$openId . "_" . $token
- 接口用interface定义,
interface LogicFilter
- 类的引入包,
require_once
- 方法调用用指针,
$this->msgEngineHandle->process($behaviorMatter);
- 数据库连接,
new mysqli()
- 定义属性,
var $openId;
- 获取入参,
$_GET['token']
- 输出结果反馈到接口,
echo
… 等等,还有很多。你所有的逻辑实现只要在Java里可以的,PHP也都有相应的支持。这就是语言建设的规范,并在某些命名也是保持统一的。
四、总结
- 这呢就是我在10.1放假的最后一天,把Java语言开发的公众号后台,切换成PHP的经历。但代码结构没变,依旧是我喜欢的DDD领域驱动设计。重要的是省钱了!,这里还有一个Java版本的公众号后台开发。Java版DDD四层架构,开发公众号服务端
- 如果你希望自己,不只是编程这条路上的PRD工具人。那么一定要大力的铺设自己的技术栈和其他不只是研发的开发能力。当你真的去了解业务、运营、产品后,相信你可以写出更加符合市场的代码。同时这些软技能,可以帮助你走向更高的阶梯!
好车上道都不响、破车上路才叽里呱啦的
!无论你在哪一行或者哪一方向努力,都可以默默的坚持着。可以在一条路上走的很久,总比每天都想着换方向要重要的多。不要做一个简单的男人,加油!- 对了,在打个广告;
- 15年,会Netty就能去大厂
- 16年,懂分布式开发就能去大厂
- 17年,熟读Dubbo源码就能去大厂
- 18年,会写中间件就能去大厂
- 19年,会算法就能去大厂
- 20年,上 bugstack.cn 学习,就能去香河大厂
五、系列推荐
- 握草,你竟然在代码里下毒!
- 一次代码评审,差点过不了试用期!
- 程序员为什么热衷于造轮子,升职加薪吗?
- 全网最火10万下载量,《重学Java设计模式》(22个真实开发场景)
- 面经手册(上最快的车,拿最贵的offer)

(转载本站文章请注明作者和出处 微信公众号:bugstack虫洞栈 | 作者:小傅哥)
版权声明
本文为[bugstack虫洞栈]所创,转载请带上原文链接,感谢
https://bugstack.cn/itstack-code-life/2020/10/11/%E4%B8%BA%E4%BA%86%E7%9C%81%E9%92%B1-%E6%88%91%E7%94%A81%E5%A4%A9%E6%97%B6%E9%97%B4%E6%8A%8APHP%E5%AD%A6%E4%BA%86.html
边栏推荐
- 7.3.2 File Download & big file download
- Gradient understanding decline
- 企业数据库的选择通常由系统架构师主导决策 - thenewstack
- ETCD核心機制解析
- Jmeter——ForEach Controller&Loop Controller
- Network programming NiO: Bio and NiO
- Azure Data Factory(三)整合 Azure Devops 實現CI/CD
- 接口压力测试:Siege压测安装、使用和说明
- Chainlink将美国选举结果带入区块链 - Everipedia
- 【QT】 QThread部分原始碼淺析
猜你喜欢
随机推荐
二叉树的常见算法总结
Outlier detection based on RNN self encoder
选择站群服务器的有哪些标准呢?
Sort the array in ascending order according to the frequency
ETCD核心機制解析
In depth understanding of the construction of Intelligent Recommendation System
DTU连接经常遇到的问题有哪些
如何将数据变成资产?吸引数据科学家
文本去重的技术方案讨论(一)
Asp.Net Core學習筆記:入門篇
6.8 multipartresolver file upload parser (in-depth analysis of SSM and project practice)
How to get started with new HTML5 (2)
对pandas 数据进行数据打乱并选取训练机与测试机集
从零学习人工智能,开启职业规划之路!
(1) ASP.NET Introduction to core3.1 Ocelot
drf JWT認證模組與自定製
小白量化投资交易入门课(python入门金融分析)
直播预告 | 微服务架构学习系列直播第三期
python 保存list数据
自然语言处理-搜索中常用的bm25