首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【技术向】高可定 低维护の博客搭建指南

为什么输出分享对程序员来说十分重要,我有以下几点看法。 从技术角度考虑,技术的提升依赖于专业知识的学习以及实际经验的积累,而人的大脑需要不断地进行重复记忆,才能将这些知识经验留在自己的知识库里。...因此,无论是学习新知识还是通过实践得到的经验,有了即时的输出记录,才便于复盘与巩固。...我推崇用Markdown来写笔记,因为markdown足够简约优雅,兼容性也十分强, Markdown是一种轻量级的「标记语言」,通常为程序员群体所用,目前它已是全球最大的技术分享网站 GitHub 和技术问答网站...例如添加/Demo分页,可以在配置文件中新增一项tab配置,在source文件夹下添加/demo/index.md即可,可以在post.pug模板中更改tab分页渲染index.md的方式。...(注:pug,即前jade,前端的一种模板引擎,api参见https://pugjs.org/api/getting-started.html) 调试的过程也很方便,使用hexo server命令可以启动本地环境

58220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    VSCode打造成为开发神器

    VSCode现在是世界上最为常用的编辑器之一,为什么被称为编辑器,是因为它不像IDE一样集成了大量开发环境的配置,必须你手动配置很多东西,才能将它打造成为一个趁手的生产工具。...VSCode最大的优势就在于它是完全免费的,你不需要支付任何费用,就可以得到一个开发各种代码的编辑器,也正因为它具有高拓展性,它可以用来编写Python、C++、C#、GO、Dart等一系列语言。...Image preview:引入项目中的图片预览。 Import Cost:检测导入项目中的包的大小,在优化项目的时候非常有用。...Sass/Less/Stylus/Pug/Jade/Typescript/Javascript Compile Hero Pro:同上,只是转化的文件类型更多样。 4....Debugger for Firefox:能够使VSCode在Firefox上面调试代码。 Docker:使VSCode具有操控Docker的功能。

    2K20

    前端工程化发展历史

    我们在 2015 年的时候使用它们,之后还用过 Makefiles ,但是现在我们通过 Webpack 把所有功能都集成在一起了。 Makefiles?这些一般用在 C/C++ 工程中吧?...ES2016+ 不已经是 ES6 的超集了,为什么我们还需要使用这个叫 TypeScript 的东西? 因为它允许我们写 javaScript 的时候定义类型,从而减少运行时的错误。...你不是说过 Jade 了吗? 我的意思是 Pug,也是 Jade。现在 Jade 叫 Pug 了。 额,我想不起来我用过啥了,你现在用什么模版引擎? 也许会用 ES6 支持的原生模版字符串。...我觉得我追不上这么多的变化,各种版本号,还有各种编译器和转换器。javaScript 社区真是太疯狂了,它觉得每个人能跟上这么快的变化吗。 哈哈,你应该去了解一下 Python 社区。 为什么?...它使得 js 可以脱离浏览器去运行,还提供了读写文件的能力。从而可以在本地进行编译、转换 js 文件,将打包完成的文件运行在浏览器中。

    78920

    我整理了这43个VS Code插件,Bug输出更快了

    工作之余,我整理了这 40 多个 VS Code 插件,其中有一部分已经内置了,但不知道他们是用来干啥的。...Auto Rename Tag 自动重命名配对的 HTML/XML 标签,与 Visual Studio IDE  类似。 修改开始标签时,自动修改结束标签。...ESLint 将 ESLint 集成到 VS Code 中。如果您是 ESLint 的新手,请查看文档。 filesize 在状态栏中显示当前文件大小。...Prettier - Code formatter Prettier 是一个固执的代码格式化程序。通过解析代码,使用自己的规则重新格式化,强制统一的样式,规则包括最大行长度。.../Jade/Typescript/Javascript Compile Hero Pro 无需使用构建任务即可轻松编译 ts、tsx、scss、less、stylus、jade、pug 和 es6+。

    4.2K50

    Scala专题系列(六) : Scala特质

    在 Java 8 诞生之前, Java 未提供用于定义和使用这类可重用代码的内置机制。为此, Java必须使用特定的方法进行复用某一接口的实现代码。 Java 8 做出了改变。...= new Date() } 混入该特质的类自动获得一个time字段,在特质中的每个具体字段,使用该特质得会获得一个字段与之对应,这些字段不能够被继承,它们只是简单的被加到了子类当中....,同时,log方法调用了Exception超类继承下来的getMessage()方法 接下来,在来声明一个来混入该特质得类UnHappyException class UnHappyException...Exception的子类 在特质方法中,我们可以调用自身类型的任何方法,比如,log方法中的getMessage()调用时合法的.因为this就是一个exception类型,而下面代码 val h =...){     self.weird_prefix$time_$eq(15) } } 当特质被混入类的时候,类将会得到一个带有getter和setter的time字段,那个类的构造器会调用初始化方法

    70020

    从0到1搭建webpack2+vue2自定义模板详细教程

    出口(Output) 将所有的资源(assets)归拢在一起后,还需要告诉 webpack 在哪里打包应用程序。...pug是什么鬼?第一次听到的时候我也好奇了,然后查了一下才知道,Pug原名不叫Pug,原来是大名鼎鼎的jade,后来由于商标的原因,改为Pug,哈巴狗。...pug是什么鬼?第一次听到的时候我也好奇了,然后查了一下才知道,Pug原名不叫Pug,原来是大名鼎鼎的jade,后来由于商标的原因,改为Pug,哈巴狗。...pug是什么鬼?第一次听到的时候我也好奇了,然后查了一下才知道,Pug原名不叫Pug,原来是大名鼎鼎的jade,后来由于商标的原因,改为Pug,哈巴狗。...pug是什么鬼?第一次听到的时候我也好奇了,然后查了一下才知道,Pug原名不叫Pug,原来是大名鼎鼎的jade,后来由于商标的原因,改为Pug,哈巴狗。

    4.8K20

    JVM内存模型

    在本文中,我将重点关注JVM 规范中描述的运行时数据区。这些区域旨在存储程序或 JVM 本身使用的数据。我将首先介绍 JVM 的概述,然后介绍字节码是什么,最后介绍不同的数据区域。...虽然它对开发人员来说是不可见的,但它对生成的字节码和 JVM 架构有巨大的影响,这就是为什么我将简要解释这个概念的原因。...从 Java 8 开始,HotSpot 现在将方法区存储在称为Metaspace的独立本机内存空间中,最大可用空间是可用的系统总内存。 注意:方法区域不能超过最大大小。...Java 虚拟机堆栈(每线程) 堆栈区域存储多个帧,因此在讨论堆栈之前,我将介绍这些帧。...该数组可以保存原始类型、引用或 returnAddress 的值。这个数组的大小是在编译时计算的。Java虚拟机在方法调用时使用局部变量来传递参数,被调用方法的数组是从调用方法的操作数栈中创建的。

    81940

    Scala trait特质 深入理解

    // 定义超类 class Super // 定义特质 trait Trait // 定义子类,将特质使用with关键字混入 Super 类,并继承之 class Sub extends Super with...此外,与Java中的接口相比,我们还能够在特质中直接实现完整的方法,就像如下: trait TrMid1 { def f: Unit = println("In TrMid 1's f.") } 在...再次对应这个结构:[ class A ] extends [ S with T1 with T2 …] 那么错误就在与后面的 S 与 T1、T2 对应不上了,及要实现正确的混入,S必须是T1、T2的超类的子类...所以最先发挥作用的Even特质放在了最右侧。为什么这里,不仅能够筛选出偶数,同时还能除以2呢?答案就在super这个关键点。super.add即调用超类的add方法。...调用过程就是先调用最右侧的Even.add方法,进行偶数筛选;然后调用超类super.add(x);超类即从右到左开始Even左侧是Divide,Divide.add(x),Divide.add内部对x

    37220

    Java面试基本问题

    如果main不是静态的,那么编译器将抛出错误,因为JVM在创建任何对象之前调用main(),并且只能通过该类直接调用静态方法。 void:这是方法的返回类型。...向量很慢,因为它是线程安全的。 如果将元素插入“数组列表”,则它将其数组大小增加50%。 向量默认为其数组大小加倍。 数组列表未定义增量大小。 向量定义增量大小。...下面我列出了它的一些优点: 软件包有助于避免名称冲突 它们提供了更容易的代码访问控制 包还可以包含隐藏类,这些隐藏类对外部类不可见,仅在包内使用 创建适当的层次结构,使查找相关类更加容易...最终变量可以在不同的上下文中使用,例如: 最终变量 当final关键字与变量一起使用时,其值一旦分配就无法更改。如果没有值分配给最终变量,则仅使用类构造函数可以将值分配给它。...什么是Java中的构造函数链接? 在Java中,构造函数链接是相对于当前对象从另一个构造函数调用一个构造函数的过程。构造器链接只有通过继承才能实现,在传统中,子类构造器负责首先调用超类的构造器。

    1.1K20

    【1】进大厂必须掌握的面试题-Java面试-基础

    向量很慢,因为它是线程安全的。 如果将元素插入“数组列表”,则它将其数组大小增加50%。 向量默认为其数组大小加倍。 数组列表未定义增量大小。 向量定义增量大小。...下面我列出了它的一些优点: 软件包有助于避免名称冲突 它们提供了更容易的代码访问控制 包还可以包含隐藏类,这些隐藏类对外部类不可见,仅在包内使用 创建适当的层次结构,使查找相关类更加容易 Q12。...它是一个程序,有助于将Java字节码转换为直接发送到处理器的指令。默认情况下,JIT编译器在Java中启用,并且在调用Java方法时被激活。...最终变量可以在不同的上下文中使用,例如: 最终变量 当final关键字与变量一起使用时,其值一旦分配就无法更改。如果没有值分配给最终变量,则仅使用类构造函数可以将值分配给它。...什么是Java中的构造函数链接? 在Java中,构造函数链接是相对于当前对象从另一个构造函数调用一个构造函数的过程。构造器链接只有通过继承才能实现,在传统中,子类构造器负责首先调用超类的构造器。

    1.7K00

    Java面试基本问题

    向量很慢,因为它是线程安全的。 如果将元素插入“数组列表”,则它将其数组大小增加50%。 向量默认为其数组大小加倍。 数组列表未定义增量大小。 向量定义增量大小。...下面我列出了它的一些优点: 软件包有助于避免名称冲突 它们提供了更容易的代码访问控制 包还可以包含隐藏类,这些隐藏类对外部类不可见,仅在包内使用 创建适当的层次结构,使查找相关类更加容易   Q12...它是一个程序,有助于将Java字节码转换为直接发送到处理器的指令。默认情况下,JIT编译器在Java中启用,并且在调用Java方法时被激活。...最终变量可以在不同的上下文中使用,例如: 最终变量 当final关键字与变量一起使用时,其值一旦分配就无法更改。如果没有值分配给最终变量,则仅使用类构造函数可以将值分配给它。...什么是Java中的构造函数链接? 在Java中,构造函数链接是相对于当前对象从另一个构造函数调用一个构造函数的过程。构造器链接只有通过继承才能实现,在传统中,子类构造器负责首先调用超类的构造器。

    1.1K50

    探讨一下 To C 营销页面服务端渲染的必要性及其原理

    CSR渲染方式为什么就不合适了呢?...pug等) 最近要改造的项目正好是 Vue 开发的,目前也考虑基于vue-server-renderer将其改造为服务端渲染的。...基于上面分析的原理,我从零一步步搭建了一个最小化的vue-ssr[4],大家有需要的可直接拿去用~ 这里我贴几点需要注意的: 使用 SSR 不存在单例模式 我们知道Node.js 服务器是一个长期运行的进程...数据模型的共享与状态同步 在服务端渲染生成 html 前,我们需要预先获取并解析依赖的数据。...同时,在客户端挂载(mounted)之前,需要获取和服务端完全一致的数据,否则客户端会因为数据不一致导致混入失败。

    1.3K10

    流畅的 Python 第二版(GPT 重译)(七)

    Python 探究序列 Python 数据模型的哲学是尽可能与基本的动态协议合作。在处理序列时,Python 会尽最大努力与即使是最简单的实现一起工作。...在一个真实的程序中,类似U的类可能是一个mixin 类:一个旨在与多重继承中的其他类一起使用,以提供额外功能的类。我们将很快学习这个,在“Mixin Classes”中。...混入类 混入类设计为与至少一个其他类一起在多重继承安排中被子类化。混入不应该是具体类的唯一基类,因为它不为具体对象提供所有功能,而只是添加或自定义子类或兄弟类的行为。...② 这个混入实现了映射的四个基本方法,总是调用super(),如果可能的话,将key大写。...例如,我的第一个版本的UpperCaseMixin没有提供get方法。那个版本可以与UserDict一起工作,但不能与Counter一起工作。

    20010

    Java编程思想第五版(On Java8)(十二)-集合

    但是数组具有固定的大小尺寸,而且在更一般的情况下,在写程序的时候并不知道将需要多少个对象,或者是否需要更复杂的方式来存储对象,因此数组尺寸固定这一限制就显得太过受限了。...如果尝试在这个 List 上调用 add() 或 remove(),由于这两个方法会尝试修改数组大小,所以会在运行时得到“Unsupported Operation(不支持的操作)”错误: // collections...第 1 行输出展示了原始的由 Pet 组成的 List 。 与数组不同, List 可以在创建后添加或删除元素,并自行调整大小。这正是它的重要价值:一种可修改的序列。...5:Cymric 6:Pug 7:Manx */ 生成 Iterator 是将序列与消费该序列的方法连接在一起耦合度最小的方式,并且与实现 Collection 相比,它在序列类上所施加的约束也少得多...我相信接口的意义不应该仅限于方法组合的机械地复制,因此我在创建接口之前,总是要先看到增加接口带来的价值。

    2.2K41

    HTMX简介:无需JavaScript的动态HTML

    它经常与HTMX一起使用,但并不严格属于HTMX或需要使用它。实际上,on htmx在这里用于处理在创建新的待办事项后设置输入表单的值。...从这些例子中得到的结论是我之前提到的:服务器负责提供HTML(带有HTMX标签)的适当大小的块,以填充前端为其各种交互所需的屏幕的不同部分。...我对服务器端标记生成持更加矛盾的态度。开发者习惯于为此目的处理JSON;引入标记只是在客户端创建中增加了一个步骤。...当然,还有客户端模板选项,它使服务器成为一个熟悉的JSON发射器。我试图想象它在一个大型软件项目中是如何工作的。它会减少大规模项目中的总体复杂性吗? Gross对复杂性有自己的想法。...你可以看到他的想法在HTMX的设计中得到体现。这项技术希望通过将我们带回到Hypertext作为web应用程序的状态机制来简化事情。这个例子显示了这个想法的运作。

    67710

    小程序组件化框架 WePY 在性能调优上做出的探究

    我可以在 page1 闲时先加载好,进入 page2 时直接就可以使用。 预查询数据 用于避免于 redirecting 延时,在跳转时调用 page2 预查询。...各有优劣,取决于使用的人在使用过程中是否正好放大了机制中的劣势面。 WePY 中的 setData 就好比是一个 setter,在每次调用时都会去渲染视图。...这也就是为什么一个类 Vue.js 的小程序框架却选择了与之相反的另外一种数据绑定方式。...其它优化 除了以上两点是基于性能上做出的优化以外,WePY 也作出了一系列开发效率上的优化。因为在我之前的文章里都有详细说明,所以在这里就简单列举一下,不做深入探讨。详情可以参看 WePY 文档。...wxml 可以选择使用 Pug(原Jade)。 wxss 可以选择使用 Less、Sass、Styus。

    1.3K40

    ]=华山论栈=[=========-

    什么是堆栈 我们说堆栈,其实堆是堆(Heap),栈是栈(Stack)。一般我们写程序时不太关心堆栈,因为编译器会帮我们处理。但是还是有必要把它们弄清楚,不然有时候出了莫名其妙的问题,会无从下手。...而栈由于是函数调用时分配,占用空间大小跟调用深度有关,编译器很难确定最大需要多少空间。如果栈空间过小,直接的结果就是当栈增长超过栈底,堆中的数据,甚至是静态存储区数据被冲掉,导致不可预知后果。...那怎么避免堆栈溢出,至少知道发生了堆栈溢出呢? 一个就是在启动文件里,把堆栈的值尽量改大。编译的时候用 –info=stack可以大概看一下,各个函数占用栈的大小。...综合编译后RAM剩余空间的大大小,可以直接把栈空间放到最大。在下面的源文件中可以直接修改堆和栈的大小。对于静态存储空间,编译器会根据实际使用大小进行分配,我们不用关心。...你用过更好的方法吗?欢迎一起来探讨。

    35230

    滴滴前端常考vue面试题_2023-02-28

    mixins 接收一个混入对象的数组,其中混入对象可以像正常的实例对象一样包含实例选项,这些选项会被合并到最终的选项中。Mixin 钩子按照传入顺序依次调用,并在调用组件自身的钩子之前被调用。...>还有一些额外任务要做,比如 需要用 Vue 模板编译器编译template,从而得到render函数 需要对 中的CSS做后处理(post-process),该操作在css-loader...Mixin 使我们能够为 Vue 组件编写可插拔和可重用的功能。 如果希望在多个组件之间重用一组组件选项,例如生命周期 hook、 方法等,则可以将其编写为 mixin,并在组件中简单的引用它。...生成阶段:将最终的AST转化为render函数字符串。 为什么在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty?...,得到结果再转发给前端,但是最终发布上线时如果web应用和接口服务器不在一起仍会跨域 在vue.config.js文件,新增以下代码 amodule.exports = { devServer:

    84730
    领券