概述
本文记录了如何为 Linux 服务器搭建 .Net Core 环境,并将 ASP.NET Core 网站项目部署到服务器上,并使用 Nginx 作为反向代理服务器,借助 Supervisor 实现项目的进程管理。
在这篇文章中,我将向你们介绍一个开发模型,早在差不多一年前,我已经将这个模型应用于我的多个项目,而事实证明,这个模型是非常成功的。其实这篇文章我早就打算写了,只是一直没有时间,直到现在。在这篇文章中我将不会谈及任何项目细节,分支策略和发布管理才是本文的核心内容。
在面向对象的程序设计语言中,类的设计对软件的整体架构而言影响非常深远。类的封装作为面向对象的三大基石之首,几乎所有的主流 OOP 程序设计语言都为其提供了诸如 private、protected 和 public 这三种访问限定修饰符,其目的无非是为了帮助类更方便地与外界进行一些必要的交流和沟通。可是,对于类的数据成员而言,一旦你为其声明了 public/protected 的访问限定,那么这一举措对你的中大型程序构建而言将是灾难性的。
要深刻理解为什么 public/protected 如何可怕,就要首先明白封装的意义何在。
在曾经主流的面向过程的程序开发当中,代码的复用是函数级的,而在每一个函数当中所实行的都是过程式编码,这也就意味着在主函数当中的函数调用式编程亦是过程式的。在作用域的约束之下,为了使得不同的函数域都能够访问同一个变量,达到函数职能效益的最大化,往往将其声明为全局变量。这直接导致了任何的函数都将能够对其进行读和写的操作,对于数据的安全性而言这简直是当头一棒!在小型程序开发者的眼里,这点风险根本不足为惧,可是对于大型程序开发者来说,变量值的修改将完全不再受到开发者的掌控,值异常现象将有可能由庞大代码量中的任何一个操作该变量的默默无闻的小角落中产生。如此一来,大型程序的开发与维护变得举步维艰。
在过去一篇博文《如何科学卸载 Ubuntu?》中曾提到 Ubuntu 启动引导的删除,其中先后通过 EasyUEFI 与 diskpart 工具删除了 Ubuntu 的启动引导条目以及 Ubuntu 的 EFI 分区,但是仍有可能出现启动引导的残留,最直接的表现就是在开机的时候依旧没有正常进入系统而是进入了 GRUB 界面。本文以清理 Ubuntu 启动引导残留为例,演示如何借助 Bcdedit 移除固件应用程序,进而彻底清理启动引导残留,同理亦可以移除多系统下不需要的启动引导。