设为首页|收藏本站|
开启左侧

[问答] 单人做一个网站需要掌握哪些知识?

[复制链接]
75194 20
475143722 发表于 2020-6-2 20:50:14 | 只看该作者 打印 上一主题 下一主题
 
想学习如何做一个网站,却又不知道从哪里入手。请各位大牛给点方向性的意见,比如如何学习?学什么?学到什么程度? 强调一点,是自建网站。


上一篇:国内有那些好的网站建设公司?
下一篇:如何从零开始建设并运营一个网站?需要些什么?
@



1.西兔生活网 CTLIVES 内容全部来自网络;
2.版权归原网站或原作者所有;
3.内容与本站立场无关;
4.若涉及侵权或有疑义,请点击“举报”按钮,其他联系方式或无法及时处理。
 

精彩评论20

正序浏览
跳转到指定楼层
沙发
对牛弹琴2 发表于 2020-6-2 20:50:26 | 只看该作者
 
这么巧,  how2j.cn/t/44 , 就是我一个人单独做的~
做了有一年半了,现在每天有1000个人访问,流量可真低呢,哈哈
简单列罗一下网站功能,以及需要什么知识, 当做题主学习思路的一种参考吧
1. 网页上要显示内容,需要学学HTML,比如这个页面,有文字,有图片。
 第1张图片


2. 光有文字还不行,还要考虑不同的颜色,布局,排版,如图做出这样页面效果,要学学基本的CSS

 第2张图片

3. 有一些交互,比如修改了代码可以实时看到效果,得掌握Javascript

 第3张图片

4. 直接写CSS太累,需要套用别人写好的,来得快,也比自己做出来的好看,那么就可以用用Bootstrap

 第4张图片

5. 现在网站有1000多张页面,不可能做1000张html呀,所以这些都需要维护在数据库里面,那就学一个简单的MySQL

 第5张图片

6. 现在一共有55张表。。。。 怎么维护他们之间的关系~  彼此如何依赖,外键如何关联,这个需要学习表关系的相关知识


 第6张图片

7. 有了数据库,也有了表,那么如何从这些表里取数据呢? 我用的是JAVA技术栈,那么就需要用到JDBC

 第7张图片

8. 为了使用JDBC不是需要Java基础吗? 为了仅仅满足JDBC的运行,需要如下JAVA基础
面向对象,变量 操作符 控制流程,数字与字符串,异常处理,集合,嗯,刚刚够

 第8张图片

 第9张图片


9. 这样JDBC就可以取出数据了,那么取出来之后怎么显示在HTML上呢? 需要用到JSP

 第10张图片


10. 为了JSP可以运行,需要一个Servlet容器,TOMCAT,简单用用就可以了

 第11张图片

11. 可是TOMCAT总不能在自己机器上跑嘛,要放在公网上,运行,其他人才看得到呀,所以需要掌握如何在LINUX里部署Tomcat

 第12张图片

12. 那么挂在公网上的Linux自己怎么弄呢? 我也弄不来,我是在阿里云租的LINUX云服务器

 第13张图片

13. 随着网站提供的功能越来越多,光用JSP开发太慢了,而且难以维护,这个时候就用到了Struts 加快开发效率

 第14张图片

14. JDBC也有点难以维护了,那么就换成了Hibernate

 第15张图片

15. 为了让Struts和Hibernate更好的整合在一起,那还得学学Spring以及这3个的整合

 第16张图片

16. Struts常常有漏洞产生,所以还得时常打补丁,真后悔当初没有用SSM那套呢(其实当时也不熟SSM,哈哈~)

 第17张图片

17. 为了更好的讲解知识点,录了教学视频,所以还得会录屏软件。。。。

 第18张图片

18. 这些视频放在youku不太好,会有广告,放在云盘也不好,会被莫名其妙举报而关闭,所以还是放在自己网站吧。 那么为了播放,还的学会html5的播放方式

 第19张图片

19. 看视频太慢,所以再加个不同速度的播放按钮,以及回放按钮

 第20张图片

20. 随着访问的人数增多,看视频的人有个3,4个人同时看的时候,视频播放就卡成狗了,所以为了播放顺利,得把视频放在OSS上面去

 第21张图片

21. 可是视频也多呢,一个一个得手动上传多麻烦,那就得调用阿里云的API,用Java帮你自动上传

 第22张图片
22. 还有些和开发技术无关的,也是需要掌握的,比如域名,要自己去选购一个,也是在阿里云买的, 以前叫域名里包含java这个商标,害怕被oracle拿回去,就改了。
23. 光有域名还不行,当服务器是在国内的时候,是需要备案的。 备案流程现在简单多了,基本上7天就可以做完,不过其中有一个挺麻烦的地方,需要自己手写签字,然后再扫描出来发过去,可是我没有扫描仪呢,去楼下店里扫描又嫌麻烦,怎么办呢。。。。刚开始是在淘宝买5元的那种帮扫描的。。。 后来发现有的网站可以提供手写字体,于是把手写字复制下来,再ps到要填的单子上,发过去就行了,这个可是我十分得意的备案经验哟,哈哈
嗯~ 好像就这些吧~ 一眨眼看,貌似需要的知识也不少,其实很多很多的知识,在一开始做这个网站的时候,我都是不会的,比如Linux(掩面),HTML5播放视频,阿里云API。
刚开始做的时候,其实就是很基础的增删改查一套,做得过程中,发现需要做某个功能,做这个功能的时候再去学需要的知识,这样随着网站功能得一点点丰富,自己的知识,技能也成长了起来了。 和打游戏的道理一样一样,先整点简单的小副本,干点小BOSS,装等提升一些,技能熟练一些,多打几个小副本,到了进团队副本的时候,装等,技术也跟着就上来了嘛。
所以回到题主的问题 “给点方向性的意见,比如如何学习?学什么?学到什么程度?”。
试着自己做一个对别人有价值的个小网站嘛,简单的那种,比如分享你收集的PDF,小软件,考试题目什么的,以功能需求为导向,按需学习,这是最好的学习方式,也是最有意思,最有乐趣的方式。
从头到尾做一个站,像是搭一个积木;更像是设计并建造一栋建筑,你熟悉里面的一砖一瓦,这里面凝聚了你的创造性和灵感;甚至更像是你的小孩,你看着他一天天长大,里面有你的心血,懊恼,奋斗,挫折,成长,收获。
感谢这个时代,提供给我们这些独行者这样的环境,条件,机遇去做一件允许自己沉醉其中的事业。
其他相关:知乎上前端开发领域有哪些值得推荐的问答? - 知乎
收藏的同学,请记得点个赞~
回复 支持 反对

使用道具 举报

 
板凳
杨锦晖 发表于 2020-6-2 20:51:10 | 只看该作者
 
我就是自己做了一个网站(建筑一网 http://www.jianzhu1.com),七月1号做好的,现在上线大概20天吧。现在每天大概有400人访问吧,阅读量在1000左右,真的很低呢,新站都是这样吧。


 第45张图片


 第46张图片


图1:网站logo 和我的更新记录




 第47张图片
图2:网站现在的完成图
做网站很难吗?我一开始也是这么认为的,可是经过一段时间摸索之后,我觉得做网站还是可以入手的,关键是这个过程很有趣。
下面我们就一步一步分解做网站这个过程吧。本次回答的前四点可能和其他回答都差不多,重点看本回答的第五点吧。这是我自己整理的结果(比较长)。
一、首先你需要一个域名和一个空间。

域名我是在Namesilo上买的,空间是腾讯云的,这些前面的回答都有了,我就不一一说了。


 第48张图片
图3:我是在这个网站上买域名
腾讯云目前运行的还不错,而且后期还支持QQ登陆的接口,还是很适合我这个网站的。
二、其次,你需要去安装运行环境Nginx

这个,老实说我也是折腾了好多次,好痛苦啊!之间服务器都格式化了好几次,有一点不满意我就删掉重来,终于摸索了我自己的路。
我这里是按照oneinstack的方法去安装的,安装他们官网的安装步骤(安装 - OneinStack)去做就没有问题。安装好的截图如下图所示。


 第49张图片
图4:安装oneinstack成功提示
三、你需要一个FTP软件

这里我隆重推荐WinSCP软件,真的是我用过最好的FTP软件了,还有Linux的操作接口(下图红色箭头)。
 第50张图片
图5:WinSCP软件界面
四、你需要安装WordPress,并选好主题

然后我的做法就是把WordPress下载下来,通过FTP直接拖动到空间里面,这样WordPress就安装好了。然后设置一下用户名和密码就可以了。
主题主要是根据你网站的用途来定,企业网站、个人网站、BBS论坛所用的主题是不同的。
五、个人有用的小经验(特别好用)

(WordPress使用经验总结(微信机器人+B站视频+美化文章内标题的标签)-建筑一网--施工、材料、设计一体化)
Simple Tags 插件 实现网页内链(修改支持中文)
腾讯云CDN缓存设置经验-建筑一网--施工、材料、设计一体化
如何上传sitemap.xml文件-建筑一网--施工、材料、设计一体化
WordPress在侧边栏插入图片技巧-建筑一网--施工、材料、设计一体化
使用腾讯云cdn之后的速度测试--基本满意-建筑一网--施工、材料、设计一体化
阶段性总结--WordPress最近的折腾-建筑一网--施工、材料、设计一体化
下面挑几个有代表性的经验放在下面分享给大家。
5.1、自由连接网站和微信公众号
众所周知,微信公众号里面功能最弱的就是没有认证的个人订阅号了。不是我不想认证,是微信现在关闭了个人的认证了。这就导致微信公众号的很多开发功能无法使用到。比如这次,我想用水煮鱼大神的微信机器人插件来让我的网站和公众号可以自由连接,就必须要使用一点“巧劲”了。


 第51张图片
首先大家一开始都以为,未认证的公众号,在微信公众平台在微信自己的后台提供了自定义菜单设置的功能,但是没有开放创建菜单的接口。所以这个就是2选1的问题:
1. 所有的操作都在微信后台进行设置。 2. 为了使用使用微信机器人的自定义回复的功能,放弃自定义菜单功能。
鱼和熊掌是不可兼得的。
可是事实上,没有认证的个人订阅号,是可以做菜单的。可以在我的公众号“建筑一网”上看一下效果。


http://weixin.qq.com/r/0z9QSIjEVdUqrcwr92rB (二维码自动识别)


具体做法:
不需要在微信机器人做,而是在公众号里做。
1.先在“开发-基本配置”里,把配置停用。
2.在自定义菜单里配置菜单。
3.然后“开发-基本配置”里,把配置启用。这时候配置的菜单就失效了,不过没关系。
4.点“添加功能插件”,添加“自定义菜单”,点击启用。
注意:以上四步设置完成之后,需要把WordPress服务器重启一下,不然微信机器人会没有响应。Nginx下面重启服务器的命令是:
service nginx restart
下面,我将用视频演示一下操作过程:(可能移动端无法看这个视频,大家可以去B站关注我的账号“建筑一网”来观看。)                        
 第52张图片
如何让没有认证的个人订阅号可以自由连接网站和微信公众号_机械_科技_bilibili_哔哩哔哩
https://www.bilibili.com/video/av12146935/
本视频重点:如何让没有认证的个人订阅号可以自由连接网站和微信公众号?
第一步、先在“开发-基本配置”里,把配置停用。
第二步、在自定义菜单里配置菜单。
第三步、然后“开发-基本配置”里,把配置启用。这时候配置的菜单就失效了,不过没关系。
第四步、点“添加功能插件”,添加“自定义菜单”,点击启用。


然后,我们来试一试。我这里可以正常使用了,是因为我之前重启过WordPress服务器了。如果不能使用的话,可以到后台WordPress来重启服务器。
操作步骤如下:
第一步、打开WinSCP软件。
第二步、登陆,并进入Linux系统。
第三步、输入重启命令 service nginx restart
这样就么有问题了。
建筑一网微信公众号主要有两大作用,第一是分享建筑结构相关知识,第二利用该微信公众号查询“建筑一网”博客中的文章。


查询功能说明:
相关查询指令:
输入n返回最新日志
输入R返回随机日志
输入t返回最热日志
输入C返回最多评论日志
输入t7返回一周内最热日志
输入C7返回一周内最多评论日志
输入h获取帮助信息!
输入“关键词”查询建筑一网的相关文章。
查询步骤如下:
 第53张图片


 第54张图片
在搜索中搜索不到需要的内容,请更换关键词重新搜索,搜索只能搜索博客(http://www.jianzhu1.com)中的内容,网站中会根据网友提出的问题进行更新相关的内容,如果你有什么问题,请给我们留言,我们会在微信公众号和网站中进行相关更新。
5.2、在wordpress中引用B站视频
在wordpress中引用B站视频如果直接用官方的分享代码经常会出错,视频经常会显示找不到,所以小编给大家一个方法就是用下面这个代码,每次只要替换代码中小编标识的粗体数字那边就可以!
如:http://www.bilibili.com/video/av4277134/
数字就是B站视频地址中av后面的数字
<embed id="STK_137722048114034" style="visibility: visible;" src="http://static.hdslb.com/miniloader.swf?aid=4277134&page=1" type="application/x-shockwave-flash" width="600" height="520"></embed>
5.3、如何美化文章内标题的标签
就是实现图示功能


 第55张图片


其实是通过CSS定义了内容中的H标签的样式,直接将下面的代码添加到你的style.css中即可:(h1、h2、h3分别是一号标题、二号标题和三号标题)
.article-content h1{ font-size:26px; color: #FF0000; font-weight:bold; border-bottom: 1px solid; padding: 5px 15px; border-left: 8px solid; margin:18px 0px 18px -20px; overflow: hidden; }
.article-content h2{ font-size:18px; color: #FF0000; font-weight:bold; border-bottom: 1px solid; padding: 5px 15px; border-left: 8px solid; margin:18px 0px 18px -20px; overflow: hidden; }
.article-content h3{ font-size:12px; color: #FF0000; font-weight:bold; border-bottom: 1px solid; padding: 5px 15px; border-left: 8px solid; margin:18px 0px 18px -20px; overflow: hidden; }


5.4 添加QQ在线客服功能

实现的效果如下图所示,点击QQ交谈就会激活QQ应用,进入人工客服在线交流窗口。目前在Windows和Android手机测试均通过,IPhone和IPad测试未通过,主要是代码造成的,我将在下次的更新中补充。
 第56张图片
如何做到呢?首先去下载js文件,下载地址如下:(待更新)
最近太忙了,下午继续更新。也欢迎大家关注我的专栏“建筑一网”。
嗯,首先需要下载js文件,地址我已经把链接做出来了,在  http://pan.baidu.com/s/1nuNdzxn
下载之后有两个文件,分别是kefu.js 和kefu_011.gif。如下图所示:
 第57张图片
打开之前提到的WinSCP软件,把MC_kefu 文件夹整个拖动到右侧窗上传到服务器。注意,一定要放到你网站的根目录,就是和wp-admin、wp-content在同一文件夹。
 第58张图片
双击打开MC_kefu文件夹,打开kefu.js文件。将QQ号码改成自己的QQ号码,同时按照需要更改qq类型,我的是个人QQ。
 第59张图片
在要加入QQ客服的页面的<body>与</body>标签中插入以下代码
位置在主题目录下的footer.php文件。一定要拉到最后的</body>前面插入
<script type="text/javascript" src="MC_kefu/kefu.js"></script>  第60张图片


 第61张图片
需要的客服gif文件可以替换。可以在下面的资源里搜索获取。
 第62张图片


然后刷新一下页面就可以了。


5.5 百度自动推送功能代码安装方法

对于内容量非常大的网站来说,每生成一篇文章,就去百度站长平台手动提交一次链接,这个不太现实,工作量太大。因此百度专门为站长提供主动提交链接的功能,可以提高蜘蛛抓取频率和文章收录,小型企业站也可以试一下。
具体操作方法:
第一步:进入百度站长平台;
第二步:根据左侧功能栏,依次找到【网页抓取】—【链接提交】—【自动推送】。


 第63张图片
<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';        
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>
第三步:复制百度提供的这段js代码,粘贴到你的模板header或者是footer,这样就可以做到全站引用,跟安装百度统计一个道理。



JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用。
安装代码的页面在任意平台(浏览器、微信、微博)被加载时,页面链接会被第一时间推送给百度,从而提高站点新内容的发现速度。
我个人偏向与直接放到footer.PHP中,这样每次都会自动加载,不用新建文件每次调用,你也可以按照百度的安装方法安装。注意,把代码放到footer.php文件时,必须放在</body>之前。
 第64张图片
下面是网友博客安装百度自动推送代码之后的数据统计截图,还是有一定效果的!
 第65张图片


这是最简单的一种方法,不管你使用的是是dedecms、wordpress、ecshop或者是其他的程序,此方法都适用!
以上。


既然看到了这里,就关注知乎邵工吧,这样不会迷路。
知乎最可爱的工程师——邵工
回复 支持 反对

使用道具 举报

 
地板
依然如风 发表于 2020-6-2 20:51:33 | 只看该作者
 
http://game.ptteng.com

我和我的女神一起做的。
不过大部分都是我写的。

写了整整一年半。时间应该是在2013年的时候,记不清了。
论坛里有更新日志。

后端:mysql,Memcache,tuscany,scallop,dal,jdbc,Hibernate,websocket,tiltes,json-taglib,quartz,python,drools,fastdfs,nginx,jetty

前端:angularJs,jquery,bootstrap

源码:git/svn

放弃:erlang

每天晚上从下班开始写,写到晚上11点或者是12点。
还自己做了运营推广和数据分析。


这个网站是一个纯文字版在线杀人游戏网站。
支持:1.杀人游戏:简化,警版,警版不翻牌。
       2.捉鬼游戏:简化,猜词。
     3.炸狼堡。
      4.多人扫雷。
      5.一起看电影
       6。一起 看新闻
       7.Diy游戏室

   功能上:1.支持战例回放~这是我最喜欢的功能。
                  2.支持观战
                  3.支持排名,各种排名
                 4.支持金币
                 5.支持自定义神态,动作,音乐

     其他:1.集成了各种小功能。包括雅虎Pipe,多美音乐(还是别的?),美图秀秀,淘宝等等小东西。

     核心技术点:1.用Drools,通过规则引擎来实现游戏的状态判断。Workflow画的666的。写一个游戏规则挺简单的,差不多两周能把一个游戏规则做完。

                            2. 采用WEBSocket通信,所以抛弃了Aja这种到现在我都不喜欢的东西。直接定义了一套游戏的语言。参照了OWl,用主谓宾的形式来做通信。前端接收到指令之后,解析,然后执行动作。

                               3.整理出来一套游戏的动作模板。开发前端界面展示更简单。

   简单说:把游戏分成了公共和特殊的两部分。公共包括,加入房间,离开房间,踢人,抢管理,说话,开始游戏,结束游戏等。
          游戏的特殊部分,如简化,可以分成阶段(声明是白天还是晚上),权限,角色,动作,资源等等。角色包含杀手和水民,动作包括投票,杀人。资源包含什么我忘记了。

  总之在年青力壮的时候,设计的很Happy,而且扩展性也很好啊。别看现在只是文字 版的,想做成动画,根本不需要改通信逻辑,前端解析动作直接做就好了。

可惜我不会动画,也没有UI设计师。

   另外。虽然用了AngularJS,但是混杂了不少JQuery。所以很多东西用的很傻。比如。
自己把JQuery封装成了View,Service,Controller和Util的概念。

   所以后来真正理解AngularJS的时候,才是佩服的不要不要的。比我预想中的概念,特别 是filter和 directive要好的多。


  是要打算一直做下去的。只是一直在忙,想要等挣钱了以后,把我心里想像的东西做出来。
       现在只是实现 了3%都不到~


所以接下来说重点。
一个人做网站需要什么知识?

   1.PM
    2.运营
    3.技术
    4.测试
    5.客服
    6.运维

   这是大的分类,不懂PM是完全做不出来东西的。
    不是说一定要画原型图,而是说在做的时候,总会有太多干扰,必须要想清楚自己做什么,想要什么,怎么排优先级。

      不懂运营,你就没有用户。用户从哪来,怎么注册,怎么带着他们玩,怎么传播。如果什么都没有,就是一个死网站。

      比如说现在的杀人游戏-就是一个死网站了,文字 版,不做音频视频,只做我喜欢的文字 版。

        所以没人运营之后,大家自己也越来越忙,没那么多人玩了。

        技术包括前面说的各种点。我好坏多少都懂一点,搜索爬虫DB缓存分布式WEBSocketETLDrools都懂一些,否则真的搞不定这些事儿。

      马丹我就是在这个项目里学会的Drools和Erlang,看的我欲仙欲死。


       前端也一样,不过前端多靠了我的女神协助。

        运维也要懂,否则服务器随时坑死你。
       所以,说自己想要搭一个网站玩玩?看网站的难易程度吧。Discuz和Wordpress这种东西分分钟钟搭好。我还做过一个圈子通讯录的App。

          可是想做一个有人用的网站?很难。

          据说,之前内推也是一个人做起来的,挺佩服的。

          但是,一个人写代码最大的问题就是寂寞。
         很寂寞。

           寂寞如雪。
              可是我很喜欢。
回复 支持 反对

使用道具 举报

 
5#
情☆随缘 发表于 2020-6-2 20:52:09 | 只看该作者
 
你可以在开源电子书《Growth: 全栈增长工程师指南》上了解到 Web 开发所需要的知识体系,然后在电子书《Growth: 全栈增长工程师实战》实战相关的内容。

《Growth: 全栈增长工程师指南》目录

    Growth: 全栈增长工程师指南
      全栈工程师是未来
        技术的革新史软件开发的核心难题:沟通大公司的专家与小公司的全栈全栈工程师的未来:无栈

    基础知识篇
      工具只是辅助
        WebStorm 还是 Sublime?语言也是一种工具
      提高效率的工具
        快速启动软件IDEDEBUG 工具终端或命令提示符包管理
      环境搭建
        OS XWindowsGNU/Linux
      学好一门语言的艺术
        一次语言学习体验输出是最好的输入如何应用一门新的技术
      Web 编程基础
        从浏览器到服务器从 HTML 到页面显示
      HTML
        hello,world中文?其他 HTML 标记小结
      CSS
        简介样式与目标选择器更有趣的 CSS
      JavaScript
        hello,worldJavaScriptFul面向对象其他

    前端与后台
      后台语言选择
        JavaScriptPythonJavaPHP其他
      MVC
        ModelViewController更多
      后台即服务
        API 演进史后台即服务
      数据持久化
        文件存储数据库搜索引擎
      前端框架选择
        AngularReactVuejQuery 系
      前台与后台交互
        AjaxJSONWebSocket

    编码
      编码过程Web 应用的构建系统
        Web 应用的构建过程Web 应用的构建实战
      Git 与版本控制
        版本控制Git
      Tasking
        如何 Tasking 一本书Tasking 开发任务
      写代码只是在码字内置索引与外置引擎
        门户网站内置索引与外置引擎
      如何编写测试
        测试金字塔如何测试
      测试替身
        StubMock
      测试驱动开发
        红-绿-重构测试先行
      可读的代码
        命名函数长度其他
      代码重构
        重命名提取变量提炼函数
      Intellij Idea 重构
        提炼函数内联函数查询取代临时变量
      重构到设计模式
        过度设计与设计模式

    上线
      隔离与运行环境
        隔离硬件:虚拟机隔离操作系统:容器虚拟化隔离底层:Servlet 容器隔离依赖版本:虚拟环境隔离运行环境:语言虚拟机隔离语言:DSL
      LNMP 架构
        GNU/LinuxHTTP 服务器
      Web 缓存
        数据库端缓存应用层缓存前端缓存客户端缓存HTML5 离线缓存
      可配置
        环境配置运行机制功能开关
      自动化部署
        依赖与包仓库构建软件包上传和安装软件包

    数据分析
      构建-衡量-学习
        想法-构建产品-衡量数据-学习
      数据分析
        识别需求收集数据分析数据展示数据
      用户数据分析:Google Analytics
        受众群体流量获取移动应用
      网站性能
        网站性能监测网站性能
      SEO
        爬虫与索引什么样的网站需要 SEO?SEO 基础知识内容
      UX 入门
        什么是 UX什么是简单?进阶用户体验要素
      认知设计


    持续交付
      持续集成
        持续集成系统持续集成流程
      持续交付
        基础设施持续部署
      持续学习
        持续阅读持续编程持续写作

    遗留系统与修改代码
      遗留代码
        遗留代码
      如何修改遗留代码
        修改遗留代码
      网站重构
        速度优化功能加强模块重构

    回顾与架构设计
      自我总结
        吾日三省吾身
      Retro
        Retro 的过程三个维度
      架构模式
        预设计式架构演进式架构:拥抱变化
      浮现式设计
        意图导向重构模式与演进
      每个人都是架构师
        如何构建一个博客系统相关阅读资料
      架构解耦
        从 MVC 与微服务CQRSCQRS 结合微服务



《全栈增长工程师实战》目录

    序:如何成为全栈增长工程师?
      先成为全栈工程师再成为增长工程师
    全栈增长工程师实战
      准备工作和工具
    深入浅出Django
      Django简介
        Django应用架构
      Django hello,world
        安装Django创建项目Django后台第一次提交

    三步创建博客应用
      Tasking创建BlogpostAPP
        生成APP创建Model配置URL
      创建View
        创建博客列表页创建博客详情页
      测试
        测试首页测试详情页

    自动化测试与持续集成
      编写自动化测试
        Selenium与第一个UI测试
      搭建持续集成
        Jenkins创建任务创建shell

    更完善的博客系统
      静态页面
        安装 flatpages创建模板
      评论功能Sitemap
        站点地图介绍创建首页的Sitemap创建静态页面的Sitemap创建博客的Sitemap提交到搜索引擎

    样式与UI美化
      响应式设计
        引入前端框架
      页面美化
        添加导航添加标语优化列表添加footer

    应用API
      博客列表
        Django REST Framework创建博客列表API测试 API
      自动完成
        搜索API页面实现
      跨域支持
        添加跨域支持

    创建移动应用
      hello,world
        构建应用
      博客列表页
        列表页详情页
      Profile
        Json Web Tokens登录表单Profile
      创建博客
    移动单页面应用
      移动设备处理前后端分离
        Riot.jsReactiveJS构建服务创建博客列表页博客详情页添加导航

    配置管理
      local settings

回复 支持 反对

使用道具 举报

 
6#
甜心小k 发表于 2020-6-2 20:52:22 | 只看该作者
 
这个话题我要来一发,因为我正在干这个事情。
以上的不少答案都说出了不少干货,我就不重复了,我说我的步骤。

我说下我自己的技术背景吧:
专业:工商管理
工作:1年设计、2年纯前端、半年前端+后端、半年纯后端。

我目前在做的是一个分享类的问答网站,某一个细分类的,是什么类型的就不说了。
开发时间主要集中在晚上和周日(万恶的周六上班公司...)。

不废话了,直接说项目开始的步骤。

一、产品分析阶段
    需求分析
    功能模块划分用户使用流程草图原型草图
这一阶段没有什么技术要求,主要工具就是铅笔加A4纸。麻烦一点的地方在于需求分析的过程中不断有新的想法,推翻之前的重来,所以草稿画了四五十张吧,目前是第一版需求。
技能:会削铅笔、会画线、会写几个字即可。
工具:铅笔1支,中性笔一支,A4纸一盒
用时:跨度一个月,工作时间约60+小时吧。

二、设计阶段
1. 参考各类分享、问答类网站。
2. 仔细设计UI流程。
3. 网站设计规范制订:用色、Logo、通用组件、尺寸、自适应移动端方案等
4. 按功能模块开始设计。
这一阶段比较痛苦,设计是一个很扯淡的工作,因为没人审稿,自己要求也不严格,所以初期的时候随便弄了。待出了七八个页面之后发现这也太!丑!了!。
于是重来,重来,重来...
几版之后依然不满意,哎,先这样了,算了。
技能:会开机、会PS。
工具:笔记本电脑一台、PS软件一个(破解版的)
参考:各类网站,http://www.pinterest.com 给我的参考最多... 嘿嘿
用时:跨度一个月,工作时间大约100多个小时吧。

三、数据库表设计
这没什么好说的,根据业务来分表,具体也不好表述。
技能:SQL基本知识、数据库基本知识
工具:sublime,sql
用时:10小时

四、前端技术
1. 技术选型
2. 开发环境搭建
3. 静态页、css组件、js组件、前端业务逻辑
最开始在犹豫是先写React-Native App还是先写PC网站。
后面想了想还是先写PC,原因三点:
1. UGC网站没有PC端会对内容产生环节带来极大的不便。
2. App推广我没钱。
3. PC我熟啊!

说一下技术选型吧。
首先只支持ie8+,或者ie9+。
业务框架:因这个网站的与用户交互还是蛮多的,所以mvvm框架是必须的,所以选了React,因为现在还没有开始写业务代码,后面用Angular或Vue也说不一定。
交互组件:因在前公司写了一套React的组件,大约有十多个,可以拿来重用,所以组件就用React来写了。
CSS:CSS Modules 想来想去没必要,小网站搞这么多花样做个啥呢。大手一挥,取bootstrap的less工具过来定制,相当的爽利。
构建:webpack
优化:还没有
技能:熟悉CSS语言、熟悉UI模块化、熟悉组件化、熟悉bootstrap。熟练的使用JavaScript完成前端的大部份业务(交互、通讯、展示)及组件,非常熟悉一两个前端JS框架(读过核心源码或有不少的实际运用经验)。
工具:less\webpack\webstorm
用时:进行中,目前50+小时

五、后端技术。
1. 语言选择
2. 架构设计
3. 开发环境搭建
4. 域名、服务器购买
5. 版本控制

语言在Java和Nodejs之间摇摆了很久,想用Java来练手(其他的不会,C略懂,但是用C写服务器估计比较虐),都用Java写了一些了,后面删了,改用Node。因为项目后面会有其他朋友加入进来,都是Nodejs背景的,权衡之下,用Node了。

架构设计就比较扯淡了:
读写分离?没有。
分布式?没有。
其他呢?也没有。
为什么没有?因为没弄过啊!边写边学习吧!

开发环境主要包括:
1. typescript环境,Nodejs用ts来写,所以有构建环境(gulp+ts+babel)。
2. 工程目录划分。
3. 模块划分,模块目录。
4. Node服务层(session\router\view\static等)
5. 系统稳定层 (运行日志、性能监控、恶意请求捕获等)
6. 数据库:当然是mysql...
7. 安全层:准备在程序外层套一个安全过滤器,具体怎么做还没想好,大概是在Node层外加
    一个安全检测层,主要检测请求的合法与否,这一层应该有session验证、防注入、sign验等。
   目前还没做。

域名注册了几个.top域名,嘿嘿,相当的便宜...最贵的一个才3200,最便宜的5块还是2块忘了。
服务器在阿里云买了个最便宜的64块一月,结果装gitLab装不上,被逼升了2G内存,120来块一月吧。

版本控制就是gitLab了。
技能:一门或多门后端语言、SQL、数据库、http\tcp\socket\cookie通讯、基本的Linux操作、ssh远程基本知识、git基本知识、服务器->客户端数据流转基本概念、基本安全知识、基本加密及验证知识
工具:babel\gulp\typescript\koa\mysql\git
用时:目前40小时左右
坑:第三方库的d.ts文件真的差太多了,边写业务代码边补d.ts真是太刺激...

哦,对了,还有测试。
目前只有单元测试,而且只有功能模才有单元测试,业务模块没有...
测试框架选个常用的mocha就好了。

大约就是这些。
个人网站具备这些知识可以运营起来了。
回复 支持 反对

使用道具 举报

 
7#
woldy008 发表于 2020-6-2 20:52:27 | 只看该作者
 
如果是为了学习,建议还是从基础的学起。不然永远跳不出工具的限制。
最基础的html, css得先学,会了这两个漂亮的静态页面可以做了。学了js,可以做一些前端交互了。ps也是要学的,既然是一个人,美工也不能少。再看看一些前端框架,更棒了。
接下来就是后端了,.net, node, php, java等等看个人喜好。
网站跑起来之后还得部署,这时候运维啊,SEO啊啥的也得学学。
为了更好地管理代码,git也需要学下。

如果是做项目,具体情况具体分析,如果时间比较紧迫,而且功能比较简单建站工具能做的,那可以用这些建站工具做,成本最低的就是最适合的。

早些年我还是很喜欢用wordpress这类的建站工具的,毕竟作为博客还是很简单,5分钟应该就能搞完了吧,后面就是主题之类的配置配置啥的。但是对于题主所说的自建网站,并不清楚具体是什么需求。尽管wp这类的建站工具也有着非常丰富的插件,然而对于多样化的自定义功能,也会捉襟见肘,二次开发也是挺蛋疼的。

建站工具并不是万能。建站工具并不是万能。建站工具并不是万能。
回复 支持 反对

使用道具 举报

 
8#
day玄肖 发表于 2020-6-2 20:52:46 | 只看该作者
 
不请自来,我只是一只菜鸟。

假定题主的问题是为自身技术的提升而问,请继续看下去。
如若题主的问题是为了做一个普通的网站,请绕道别处吧。

===
    2015.5.15
       既然有人点赞,就继续补充吧,努力骗更多的赞~\(≧▽≦)/~!

===
【一、语言、工具:工欲善其事,必先利其器。

各种各样的语言为实现功能而服务,作为一只很菜的前端汪,当然是选择自己最熟悉也最容易掌握的语言了——什么爪哇(Java)请走开好么?!NodeJS显然是首选~\(≧▽≦)/~啦啦啦,(别跟我说Golang,那玩意是初学者可以轻松掌握の?那结构难道不是很丑?!)

一个用着舒服的编辑器( ⊙o⊙ )千真万确可以提升写作的速度和效率,推荐如下:

Visual Studio Code  >>  如何评价 Visual Studio Code? - 微软(Microsoft)
Sublime >> Sublime Text 有哪些实用技巧? - 前端开发
IDEA/WebStorm >> 前者集成环境适用于各种语言的开发,后者专注前端 (IntelliJ IDEA - 话题精华

【二、知识、技能:哎哟,忘词了!
    基础CSS知识( CSS 教程)基础HTML(HTML 教程)
    基础Javascript(JavaScript 教程)数据库操作(db) (SQL 教程)网络请求(ajax/http)(AJAX 教程)
    文件读写(io.file)(如果你不是和我一样要用文件存储,那么db几乎是必需的了...)
2.1 数据库:
2.1.1 表建立(我们做博客么,自然最重要的额就是文章了,那么post字段如下:
    id
    title
    subtitle
    content
    category
    author
    date需要其他表的,自行换成想要的样子,反正需求简单,就随便写吧。
2.1.2 表操作
为什么我们要说这个问题呢,你自己建啊,又是学习啊,不懂SQL以后玩毛?!

2.2 文件操作
别怪我废话,文件操作真的很重要,但是吧,但是吧你不会可以搜索( ⊙ o ⊙ )啊!类似file.read()、file.write() 这样的东西一定要知道一些。就算不知道,好吧,假设我们已经确定了用node的情况下,require()——也差不多勉强可以用了,反正人工约定也不是不可以~

【三、预期、需求:最起码你得知道自己要做个什么吧?

看到有人说自己做做着做着就成了博客,实名反对好么?
但是呢,不得不说,其实学会了做博客,其他的,基本差不多的样子T.T ?

为什么这么说呢?
就目前大多数普通网站的后端主要功能就是更删改查

后端:
    查询数据并Return : html(通过模板引擎渲染)/Json验证数据并Return : 同上
前端:
    展示交互
(⊙v⊙)嗯,那我们先来做个博客吧!

【四、书写、建站:说了那么多废话,终于可以动工了。

 第87张图片

假设我们要建立的如上的网站,主要模块分为:
(个人习惯,在代码组织上以功能为模块,受angular影响了...)
    index
    about
    blog
    doc
    labs
    fm
4.1 Backend  
博客我们说过了,需要动用数据库,需要进行  增删改查这四个基础功能。

以我的mongodb为例吧,实现文末 *附1 的几个功能就好了(自己懒得写了就去copy(不对!借用别人的...)
    add()
    put()
    del()
    get()
    getAll()
当然了,前端还要显示对吧,所以页面呢,其实差不多,也就是个静态页,然后最后把数据render到html上就好。怎么玩随你。实现不想写页面直接用res.send()也可以。

4.2 Frontend static
index&about基本就是静态页,不需要什么东西,所以,请动用最初说的html/css基础做一个你喜欢的页面吧(丑也没关系!虽然我确实很难接受...),然后留着备用喽~

对了,忘了说,其实更好呢,是规划一下你这个网站未来的布局、样式、板块呀什么的,但是对初学者来说这些balalala的东西估计也听不懂,后面再改去吧~
这里如果能规划下去,大概坑填的差不多的时候就可以建立一套自己的UI库了。


4.3 Frontend  dynamic
可能我设计不太合理,分类不明确,但是我感觉吧,前面那些都很简单,
后端的基础功能是很好实现的对吧?之前那段代码(*附1)基本就是核心了。

我是把路由(访问的url)也包含在这个分类了
(lue挑,链接难看的实现接受不了t..t),我的路由一般是这样:

http: //http://www.domain.com/

Fe:
/blog
/blog/posts
/blog/post/postName

Be:
/api/blog/add
/api/blog/put
/api/blog/del
/api/blog/get/pid
/api/blog/getAll

前端与后端都是通过api这个接口来实现类似无更新刷新页面之类的功能,准确说,这么做就是为了我前端后台的angular服务的....(AJAX 教程)

4.4 Frontend  interactive
JS大法好,放到最后就是因为js的玩法太多了,所以真不好怎么说,但凡在网站上能看到的效果都可以和它擦出爱情的火花( ⊙ o ⊙ )啊!什么WebGl / Canvas / ( ⊙ o ⊙ )啊!各种神奇的效果都是通过它来做呀!当然了,还有各种神奇的技术,那就是前端汪的最爱( ⊙ o ⊙ )啊!

来看!
A 3D FPS concept using HTML and CSS3 transforms by Keith Clark
A 3D engine built using HTML and CSS 3D transforms by Keith Clark

看看这些神奇的效果,不心动么...再来?
Video/Canvas Demo 1
D3.js - Data-Driven Documents

( ⊙ o ⊙ )啊!我去,好像已经偏离了方向,但是没关系( ⊙ o ⊙ )啊!真的很好玩好么!

===
有时间再补充,╮(╯▽╰)╭,一入前端深似海,从此节操不好买!
对了,顺便贴小广告:MT-Libraries/MT-Notes · GitHub

===
附1 (postService):
/**
* Created by thonatos on 15/1/12.
*/

var Post = require('../model/post');

exports.postService = {

    add: function (post, callback) {

        var _post = new Post(post);

        console.log(_post);

        _post.save(function (err) {

            if (err) {
                callback(err);
                return;
            }

            callback({
                auth: true,
                data: {
                    req: '/post',
                    res: 'success',
                    msg: post.name + " Added."
                }
            });

        });
    },
    put: function (pid, post, callback) {

        Post.findById(pid, function (err, oldPost) {

            if (err) {
                callback(err);
            }

            oldPost.name = post.name;
            oldPost.desc = post.desc;
            oldPost.tags = post.tags;
            oldPost.date = post.date;
            oldPost.author = post.author;
            oldPost.content = post.content;

            oldPost.save(function (err) {

                if (err) {
                    callback(err);
                }

                callback({
                    auth: true,
                    data: {
                        req: '/post/' + pid,
                        res: 'success',
                        msg: post.name + " Updated."
                    }

                });
            });
        });

    },
    del: function (pid, callback) {

        Post.remove({
            _id: pid
        }, function (err, post) {

            if (err) {
                callback(err);
            }

            callback({
                auth: true,
                data: {
                    req: '/post/' + pid,
                    res: 'success',
                    msg: pid + " Removed."
                }
            });
        });

    },
    get: function (pid, callback) {

        Post.findById(pid, function (err, post) {

            if (err) {
                callback(err);
                return;
            }

            callback({
                post: post
            });
        });

    },
    getAll: function (currentPage, perPageNum, callback) {

        var perPageNum = perPageNum;
        var currentPage = currentPage;

        Post.count(function (err, totalRecords) {

            if (err) {
                callback(err);
            }

            Post.find().skip(( currentPage - 1 ) * perPageNum).limit(perPageNum).sort('-date').exec(function (err, posts) {

                if (err) {
                    callback(err);
                    return;
                }

                var pageCount = ( totalRecords - totalRecords % perPageNum ) / perPageNum;
                pageCount = ( totalRecords > pageCount * perPageNum ) ? ( pageCount + 1 ) : pageCount;

                callback({
                    pageCount: pageCount,
                    currentPage: currentPage,
                    perPageNum: perPageNum,
                    posts: posts
                });
            });
        });
    }
};
回复 支持 反对

使用道具 举报

 
9#
唐海超爷 发表于 2020-6-2 20:52:59 | 只看该作者
 
这个回答提供的路径其实很简单,我来总结一下:
本地部署网站只需要
安装一个编辑器>安装一个运行环境>安装建站系统
剩下的就和玩QQ空间一样在浏览器里就能完成
云平台部署网站只需要
注册一个云平台账号>通过Git或FTP把建站系统传上去
剩下的也和玩QQ空间一样了
而且很多云平台还提供一键部署的镜像,连上传代码的步骤都免了…
===================================
原文链接:从零开始学习网站建设 - 余博伦的文章 - 知乎专栏

1. 配置开发环境
想要开发网站首先你需要一个写代码的地方,下面这些软件都是全世界最流行的代码编辑器。

    编辑器
      Sublime text 号称最性感的编辑器
        配置和使用方法
      Atom Github官方开源编辑器
        Atom前端开发配置
      Notepad++ Windows下好用的编辑器
    IDE
      Webstorm 功能强大,界面美观

写好了代码,你还需要管理你的代码。通过FTP将代码上传到服务器或者云空间;网站也不可能是一次写成的,你需要不停修改你的代码,因此需要用到版本控制软件。

    代码管理
      FTP:Filezilla 开源免费好用的FTP工具Git 全世界最流行的版本控制系统
        简明指南
      SVN 当然也有一部分不用Git的情况

受不了繁杂的配置?这些在线工具可以让你在浏览器里体验网站的开发环境。

    在线工具
      Codepen 在线编写HTML/CSS/JS并实时预览,还可以看到很多大牛写的代码c9 在线命令行环境,就像有一台浏览器里访问的服务器coding.net 在线托管,在线开发平台
        云IDE 编辑开发部署一条龙在浏览器中就可以


2. 搭建运行环境
网站写好之后还需要一个地方来部署运行。A表示apache,是一个网络服务器软件, M表示mysql,是一个数据库软件, P表示php,是一种用于网站开发的后端语言。通过下面这些软件包,你可以在各种系统上快速搭建好网站的运行环境。

    WAMP Windows下最好用的网站运行环境软件包
      Windows下安装配置wampserver
    LAMP Linux下,当然也可以使用LNMPMAMP Mac下的一个软件,提供类似的运行环境
      配置安装教程

除了php,还有很多其他网站后端开发语言可以使用。

    Nodejs 在服务器端运行JS
      安装教程npm国内配置
    Python 最好学全能的开发语言
      pip安装教程

你又受不了繁杂的配置安装了?这些云平台可以让你把网站部署到云端。

    新浪云 国内良心云平台,提供很多现成的运行环境,虚拟空间等阿里云 你马云爸爸的云服务,对学生很多优惠腾讯云 稍微贵一点但是性能好,也有学生优惠Daocloud 最新流行的Docker容器云服务,很多可以一键部署的镜像
3. 学习基础知识
    HTML 网页的内容CSS 网页的样式JavaScript 网页的交互PHP 全世界最好的语言,后端逻辑数据交互Mysql 最流行开源免费的数据库,数据存储
虽然PHP是最好的语言,但是你也可以选择学习其他后端语言。

    NodejsPython
4. 选用建站系统
现在你已经掌握了一些基础知识,可是你发现除了写一个hello,world的小页面以外,你几乎什么都不会。没有关系,下面这些建站系统让你摇身变大神!

    Wordpress 据说互联网上至少一半的内容管理网站都在使用它
      入门教程
    DedeCMS 国内站长最爱之一
      Windows下整合安装包使用说明
    Discuz 你看到的BBS论坛基本都是它搭建的
      安装教程
    Opencart 自己搭建一个电商网站所有建站系统 其实有特别多的开源系统
5. 学习开发框架
现在你对你的网站有了更高的要求,现有的开源系统已经无法满足你,那么你就需要手动开发一个,从无到有开发一个网站当然很困难,好在我们已经有了许多成熟的开发框架,就好像你写作文帮你列好提纲一样,帮助你快速开发。

    Laravel PHP语言的Web开发框架Express Nodejs语言的Web开发框架Django Python语言的Web开发框架
6. 其他建站教程
    搭建一个免费的,无限流量的Blog—-github Pages和Jekyll入门在SAE上搭建Wordpress博客Wordpress官方免费创建博客阿里云:建站需要什么
回复 支持 反对

使用道具 举报

 
10#
柠檬儿 发表于 2020-6-2 20:53:43 | 只看该作者
 
最近刚刚徒手做了一个网站,看到这个提问,技术小白很高兴能分享一下自己的心得。

首先,承认自己是个技术小白其实也挺艰难的,好歹咱也在计算机系混了一年,上了几门课的啊。但是美国这种转系Master打酱油的水平,你懂的。后来进了公司,完全是不学则退,咋眼四十多岁,学习能力又剧降了,要想徒手做个网站,简直就是比登天还难。

所以开始做琪石俱乐部的时候,我并没有把俱乐部网站提上日程。毕竟这年头,一个公共号就能解决的事,还用网站干嘛?--同意,这很微信。

但是世界格局总是在演变,包括小小的俱乐部。我们2014年初成立,从一开始的成员寥寥无几四处拉人,到2015年的一百多,到2016年初的候选名单上百人,人数一直在扩大。饶是我强大的记八卦能力,那么多人个个如数家珍也开始困难了。一咬牙,一蹬脚,网站不会做,做个线下的管理软件总会的吧!全自动太困难,半自动行不行?

半自动的,能管理数据库的,自带GUI的,我看到俱乐部里学Python很热门,要么就用Python做吧,Python有Tkinter。要知道,我不碰新语言已经十多年了,一把老骨头去学Python,咱丢得起这个人。--再感叹一遍,勇敢很重要。别害羞,乌龟不求赢兔子,只求自己往前跑嘛。

奉献两个链接:Tkinter , python。
https://www.tutorialspoint.com/python/python_gui_programming.htm
https://docs.python.org/3/tutorial/

我把Tkinter放在前面,是因为事实上我一开始并没有看Python tutorial,直接就拿
Tkinter里的example开始改改改,改成我想要的东西了。做到中间发现很多东西不理解(比如经典的lambda,函数传递,等等),不看python
tutorial是不行了,就停下project看tutorial再继续做了。感觉这种套路狼吞虎咽不求甚解,用来完成低级project很合适,用来积累面试经验可能并不好,面试的时候各位面试官可是恨不得把Python的根都挖出来问的。

做完这个内部的半自动数据库管理软件,一边还是被大量的日常活动会员申请给搞累了(需要手动整理好输入数据库)。开始想要么先做个最低级的网站应付一下吧,自动整理好,手动敲一个command
line输入数据库。当时对做网站我还是非常怯场的,只是有个念头而已。跟一个同事说了一下,没想到第二天我的办公桌上就出现了一!本!书!妈呀。。。都说有推爸推妈,哪还有推同事。。<<Web
Application Architecture : Principles, Protocols and Practices >>
,对,就是这本。Amazon 链接在这里:

https://www.amazon.com/Web-Application-Architecture-Principles-Protocols/dp/047051860X/

我欲哭无泪,这是赶鸭子上架的节奏啊!同事笑眯眯地说,看完这本书,你就会对网站有个基本的了解了,做起来会得心应手。

我还没反应过来,另一个同事说,我刚在家里搭了个服务器,连wordpress都给你装了,欢迎来用~

跟大牛同事们在一起的心酸和幸福。。于是一边看书一边用wordpress来做第一版本的网站。

Wordpress简直太简单了,文科生的做网站利器,谁用谁知道。三下两下就搞定了,还学会了放各种插件,没一会儿网站就上线了。一开始还真的就裸挂在同事的服务器上,后来被他使劲催,终于放到amazon的aws上了。

第一版网站一上线,各种资料随便找,申请活动不用再发email或者微信了,上网申请,后台乐翻天了,俱乐部成员直夸我执行力高,网站简洁大方。我老脸微红,忍住没告诉他们就是用了wordpress的一个模版,把内容填充进去网站就出来了,哪还用啥执行力。。

顺带总结下wordpress:

门面网站用wordpress绝对够了。Wordpress有很多已经设计好的模版,都非常漂亮。随便用一个都显得好高大上。(注意,图片要精美噢)。而且wordpress已经可以自动转手机显示模式,放哪都漂亮。如果说wordpress的缺点,功能还是很低的,支持不了特定的网站需求。普遍需求的话插件很多,但是很不灵活。另外,据说wordpress插件多了会很慢,不过这个对门户网站倒没问题:门户网站哪需要那么多插件啊。

现在倒是有网站了,也有管理软件了,可还是满足不了俱乐部需求。。我想要知道每年大家都参加了哪些活动,参加活动的时候表现咋样,哪些小伙伴会愿意出来做小组领导,哪些小伙伴喊几句就消失了。候选会员中有哪些是真正有意愿参与的,哪些就是过来刷个脸,找个工作机会。我们是学习型俱乐部,还得看看大家一年学习上有进步没有,如果没有都啥原因。。如果是线下管理,后台的负担真的是超级重啊,而且倒腾的时候很容易有错漏。

2016年中的时候,适逢我自己做了大决定,从公司告退了,开始了全职家庭主妇的生活。做饭和打扫卫生之余,除了看看《诗经》,也还可以每天花一点时间写code的嘛。能不能自己做个功能强大又灵活的网站啊啊,把上头提到的需求都满足了!

别跟我提flask之类的酷炫东西,我这水平,能有个普通版的武器就够了。上网做了一下研究,django虽然老旧了点,但资料多啊。就它了!于是开始了平庸却孤独的django之旅。

在还不会做网站之前,一想用户,注册,界面,就会被吓到。。“这个人会做交互型网站?哇。。好牛啊。。”所以当时自己开始做的时候,就像探索一个完全不知底细的崖洞,不知道能摸多深,更不知道最后能不能爬出来。

然而我们活在二十一世纪的新社会,丰富的网络资源让自学成了可能。--只要你有时间,肯下功夫,你总能学到好东西。(注意:此处是鸡汤,原因在后文)。

上次弄 Tkinter 做到一半去看python的滋味不好受,这次稍安勿躁一下,不裸上了,先看点django的东西吧。

看的资料是这个:

http://djangobook.com/

看书到看不下去之后(别听大牛们忽悠,小白看书从来不会看完的,能看前五章就不错了),以我剧差的动手能力,想开做还是好难,多想找个帅哥来手把手教我做啊。。还真有!打开这个视频吧:

https://www.youtube.com/watch?v=KsLHt3D_jsE&list=PLEsfXFp6DpzRcd-q4vR5qAgOZUuz8041S

手把手教你做网站!一步一步,按照这个来,真能行哎!

帅哥把基本的东西都教了,前端后端,注册,bootstrap。。真的是非常感谢,虽然是免费的,但年底还是得给人写张支票意思一下。师傅领进门后,自己得独立接着做了。交互性网站最关键的是数据库设计,还好做管理软件的时候已经有思路了。设计完数据库,各种功能的实现,就是遇到bug的时候了。有了bug咱找谁?程序猿最忠实的好朋友--stackoverflow


http://stackoverflow.com/

当时写code写到畅快一日千里的时候,老是遥想自己完成之后,一定要来一句:“djangbook+youtube+stackoverflow+github”就等于一个网站。有了这四样东西,做网站就成了劳动密集型工作。正聊发少年狂之间,忽然咯噔一下,

掉进了paypal这个大坑。

这下彻底傻眼了。一碰到网络signal的问题(server和paypal之前的signal互传),上面的东西统统不中用了。眼看上去都很好的东西,就是不work。到stackoverflow找,有人问类似问题,没人回答,或者答案自己试了还是不行。有看到说,这些问题关系到系统设置,得去看系统才能弄清楚。问问题的人哭着说,“我已经找了七天的bug了还没找到。。”我读着也快哭了。

去找一个做过网站的小伙伴哭诉。对方两眼望着前方,湎了一口酒,悠悠地说:“paypal啊,是个大坑。。要么你试试XXX吧,找bug方便点。”
(XXX是类似django 的另一个做网站工具)。我一听,怒了:“不行!别人的django都能用PayPal,为什么我的就不能?”于是表演了一场拂袖而去。

讲这句话,可是真勇敢。“别人行,为什么我就不行?”
多励志!但是做过事情的人都知道,世界上别人行咱不行的事情多着呐,千万得对自己的能力有个正确的评估。低了固然影响到潜力的发挥,高了,就更麻烦,一辈子都在做不可能成功的努力。

然而我说这句话,却是有底气的。因为最牛的人,现在才出场。在开始做网站的时候,伊达就跟我说,“加油啊,有什么问题来问我。”
伊达何许人也?曾经的高考状元,现在的硅谷顶尖高手啊,人家可就是搞网络系统安全的!前阵子刚还有个对冲基金的创始人跟我抱怨搞安全又信得过的牛人好难找,我当时就想,的确,伊达这样的剑客,不是用钱就能请得动的。

承蒙伊达的欣赏,我才有勇气徒手去做这个网站。知道他的时间十分精贵,所以碰上问题能自己搞定的就尽量不麻烦他了。但是到signal这一块,我是真的需要求助了。专家出手果然不同,人家用的都是套路,套路!

自古深情留不住,总是套路得人心。

只要有机理的地方,就可以有套路。庖丁解牛,就是懂得牛的内部结构啊!我只有膜拜的份了。。

关键的问题分析清楚后,我终于把 PayPal
也搞定了。2016年10月底,网站正式上线试用。大量会员开始注册以及参加活动。界面简单到除了Store连个图片都没有。--自从facebook/微信等新一代社交媒体兴起后,我的看法是,普通的网站除了服务于实体本身已经不需要其他类似bbs的功能了。简单,能用,方便,就好:

https://www.qishicpc.com

最后欢迎大家参加我们俱乐部的各种活动,花了那么大的功夫,不就是为了让小伙伴们能愉快地学习么~~
回复 支持 反对

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

排行榜
活跃网友
返回顶部快速回复上一主题下一主题返回列表APP下载手机访问
Copyright © 2016-2028 CTLIVES.COM All Rights Reserved.  西兔生活网  小黑屋| GMT+8, 2024-5-7 23:25