设计模式全景图
文章平均质量分 66
全栈设计模式MVVM, RESTful, MVC
UI设计模式Material Design
函数式编程艺术, 面向对象思想
xosg
这个作者很懒,什么都没留下…
展开
-
基于Java/Mysql的个人博客网站
博客用到的技术有:h5/css3/es6,jsp,servlet,mysql,bootstrap,ajax,json其中jsp技术用到了jstl标签库,el表达式和标准动作等,并没用使用纯java,便于日后扩展数据库连接池使用了c3p0 具体参数详见配置文件后端也没有任何框架,摒弃了庞大而臃肿的SSL框架(洁癖哈哈)Markdown编辑器使用了开源的editor.mdjavablog/admin 管理员相关的的servletblog/dao 数据库接口类。原创 2021-04-25 23:44:00 · 1046 阅读 · 1 评论 -
【知乎搬运】为什么下载的安装包都需要安装才能用,而不是可以直接用呢,安装的过程到底是在做什么?
作者:dontpanic链接:https://www.zhihu.com/question/265996364/answer/302255917来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。“安装”其实就是自动部署的过程,软件必须依赖于正确的外部环境才能正确执行,“部署”其实就是把这些环境进行正确的设置。比如:软件在运行之前需要添加/修改/删除系统配置。比如,QQ为了防键盘监控,自带驱动程序。为了能够让驱动程序正常工作,必须要在系统中对驱动程序进行添加注册等.转载 2022-03-28 19:48:14 · 556 阅读 · 0 评论 -
【转】跨平台混合开发各流派对比
1. 跨平台技术的诞生我是 2010 年开始从事的 Android 开发,当时会 Android 和 iOS 开发的很少,也不火,所有人都在 “摸着河底过河”,项目更没有第三方框架一说,大都是自己写的,不像现在各种的框架满天飞。随着移动开发的发展,互联网公司也是层出不穷,有些公司迫于竞争,想要更迅速的更省成本的进行开发,就不再满足 Android 端一套代码,iOS 端一套代码。与此同时,其他技术领域和各大公司也都觊觎着这份大蛋糕,纷纷推出相关的技术,这样跨平台技术应运而生,并且开始在公司中生根发芽。转载 2020-10-18 22:33:02 · 1493 阅读 · 0 评论 -
嘿, 你知道吗, 再也不需要for循环了!
做一个优雅的程序员JavaScript是一门优雅的语言, 这个'优雅'体验在JS逻辑层次处于高段位的水平, 什么意思呢, 就是一个js应用的主线剧情一定全部是函数式表达的高层可读逻辑, 还是不懂? 再举个栗子: 一个node.js应用程序中index.js文件里面从来都不会出现一些封装的工具比如斐波那契求和函数, 也不会出基础现常量表达式比如数值, 字符串, 正则表达式, 因为这些都属于数...原创 2019-01-07 15:23:21 · 2733 阅读 · 2 评论 -
死锁与囚徒困境的辩证关系
最近在复习<操作系统>的重修考试o(╥﹏╥)o, 原来准备戴上耳机来一场硬核复习, 但是发现死记硬背没用还浪费生命, 只好假装喜爱这一门学科, 顺带研究了下一些OS的底层原理, 期间通过研究银行家算法原理时发现了一些有趣的现象, 顺便联想到一些哲学思想, 想和大家分享一下: )首先谈谈OS在预防死锁的时候和进程之间进行了哪些博弈.操作系统进程死锁是一个古典问题, 由于进程之...原创 2019-01-04 15:16:43 · 1668 阅读 · 0 评论 -
2019 | 开启新的堕落生活
时光荏苒,岁月如梭.. 又一年的时间一晃而过,加入CSDN 2年了,参加工作快1年多时间的我,兜子里还是像以前一样一贫如洗,不过还好我的'博客砖家'头衔给了2018年一个基本交代,基本符合当初定下的目标吧,当初我的技术博客从原来的新浪博客(现在没落了)到后来的阿里云栖社区博客再到自己搭建nodejs博客失败(流量太少, 不爽(# ̄~ ̄#))最后选择了CSDN, 主要是这里百度的收录真的很...原创 2019-01-03 14:21:51 · 3074 阅读 · 3 评论 -
全栈设计模式套餐MVVM, RESTful, MVC的历史探索
众所周知, 软件开发时遵守一个规范的设计模式非常重要, 学习行业内主流的design pattern往往能够为你节省大部分时间.根据我2年的全栈经验, 在Web应用程序领域最流行的, 并且若干年内不会过时的设计模式套餐分别是: 前端的MVVM, 后端的MVC, 以及中间的restful api设计模式, 这三个设计模式的搭配非常完美, 以至于几乎所有的互联网服务都效仿这个标准来开发应用....原创 2018-12-27 11:58:09 · 2377 阅读 · 1 评论 -
停止学习框架
这是一篇译文,原文在 Hacker News 上获得接近 500 个点赞。每过几年都有类似的文章出现,然而程序员却依然疲于学习新的框架,看完此文希望对你有所启示。那么,译文开始。 我们是程序员,每天都在了解最新的技术,每天都在学习编程语言、框架和库。因为我们知道的现代编程工具越多越好,对吧?不停地追随 Angular、React、Vue、Riot、Ember、Knockout...转载 2018-12-21 23:20:14 · 2493 阅读 · 15 评论 -
理解JavaScript中的“原型”
出于本文的目的,我将使用ECMAScript 5.1中定义的语法来讨论JavaScript对象。第3版中存在基本语义,但它们并没有很好地暴露出来。一个全新的对象在JavaScript中,对象是键和值对(在Ruby中,这种结构称为Hash;在Python中,它称为字典)。例如,如果我想描述我的名字,我可以有一个带有两个键的对象:firstName指向“Yehuda”并lastName指向“K...原创 2017-09-16 14:28:08 · 557 阅读 · 0 评论 -
将客户端信息记录到服务器的简便方法
JavaScript调试在Web应用程序开发中是一件非常麻烦的事情。因为如果您编写的JavaScript代码中存在任何错误,许多Web浏览器都不会通知您。他们只是默默地失败并阻止以下代码执行。为了调试JavaScript代码,我们需要一个良好的日志机制来帮助我们记录错误信息,我们经常需要将JavaScript代码中的错误记录到服务器以便在生产Web应用程序中进行调试,我们应该做什么?我们想...原创 2018-01-05 11:04:33 · 1364 阅读 · 0 评论 -
复习一下吧, 排序算法
先来张图片Sorting Comparison冒泡排序算法描述<1>.比较相邻的元素。如果第一个比第二个大,就交换它们两个; <2>.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数; <3>.针对所有的元素重复以上的步骤,除了最后一个; <4>.重复步骤1~3,直到排序完成。...原创 2018-11-15 11:38:04 · 1579 阅读 · 1 评论 -
这年头在云村生存这么难?
在之前的几年里,我一直把网易云音乐作为主力听歌渠道,在各平台上安装的也基本都是网易云音乐和一款本地播放器(foobar2000或phonograph)。今年年初的时候,网易在Android平台上发布了网易云音乐5.0。升级后,点开这软件,5秒后,我在App info界面中点击了uninstall。其实很长时间之前我就开始对这个平台不太满意了,具体原因之后会提到。彻底弃用一个曾经使用过一千天...原创 2018-11-13 08:40:35 · 2044 阅读 · 2 评论 -
古今中外著名14大悖论
1. 全能悖论The Omnipotence Paradox 假如一个万能的人(例如神)制造一颗石头重到他也无法举起,那他还是万能的吗? 这悖论表示假如一个万能的人可以做任何的事,那他也可以限制自己做某些事,因此他就无法做任何的事,但另一方面假如他无法限制自己的能力的话,那这就会是一件他无法做的事。 2. 堆垛悖论The Sorites’ Paradox 这悖...原创 2017-05-04 10:18:21 · 6814 阅读 · 0 评论 -
Java bean 是个什么概念?
Java语言欠缺属性、事件、多重继承功能。所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码。Java Bean正是编写这套胶水代码的惯用模式或约定。这些约定包括getXxx、setXxx、isXxx、addXxxListener、XxxEvent等。遵守上述约定的类可以用于若干工具或库。举个例子,假如有人要用Java实现一个单向链表类,可能会这样写://转载 2017-11-09 16:21:46 · 2312 阅读 · 4 评论 -
webgl基本概念[2]
WebGL渲染管道到目前为止,我们已经讨论了WebGL如何工作的一些方面,但大多是偶然的。幸运的是,以系统的方式解释WebGL渲染的进展并不需要太多。这里的关键比喻是管道。理解它是很重要的,因为它是所有当前图形硬件的通用功能,理解它将帮助您本能地编写更加硬件友好的代码,因此运行速度更快。GPU是大规模并行处理器,由大量计算单元组成,这些计算单元设计成彼此并行工作,并与CPU并行。即使在...原创 2017-09-09 20:39:15 · 804 阅读 · 0 评论 -
自适应网页设计(Responsive Web Design)
随着3G的普及,越来越多的人使用手机上网。移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素。同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不转载 2017-11-18 08:56:54 · 557 阅读 · 0 评论 -
我们真的需要前端框架吗??
停止写JavaScript框架JavaScript框架看起来像死亡和税收一样不可避免。我敢肯定每次有人开始一个新的web项目时,他们问的第一个问题的肯定是: 我们用的是什么JS框架?这真让我着急上墙。 这就是JS框架在当今业界根深蒂固的现像。实际上,框架并不是非有不可,它需要停下来。 让我们来先看看我们现在都有什么?Angular 和 Backbone 和 Ember,原创 2017-12-16 11:29:00 · 5473 阅读 · 2 评论 -
谈一谈"大公司定标准、中公司搞专利、小公司卖苦力"
“一流企业定标准、二流企业做品牌、三流企业卖技术、四流企业做产品”是经济发展的普遍规律, 标准之争其实是市场之争。谁掌握了标准,就意味着先行拿到市场的入场券,甚至成为行业的定义者上个世纪以来,关于工业品标准的新闻接连不断。年初,中国DVD生产企业刚刚交了现有技术的专利费,索尼、夏普、三星、LG、飞利浦等9大公司又组成了蓝光光盘(blurayDisc)联盟,进行技术升级,倡议Ad原创 2017-12-23 15:15:59 · 1716 阅读 · 0 评论 -
Chrome调试ECMAScript之断点debug技巧大全!
这篇文章主要介绍了使用Chrome调试JavaScript的断点设置和调试技巧,需要的朋友可以参考下你是怎么调试 JavaScript 程序的?最原始的方法是用 alert() 在页面上打印内容,稍微改进一点的方法是用 console.log() 在 JavaScript 控制台上输出内容。嗯~,用这两种土办法确实解决了很多小型 JavaSc原创 2017-12-28 22:10:11 · 1096 阅读 · 0 评论 -
JSP页面中的pageEncoding和contentType两种属性
JSP page指令:JSP文件:@ page language="java"%>@ page import="java.util.*"%>@ page isThreadSafe="false"%>@ page contentType="text/html; charset=UTF-8"%>@ page isELIgnored="true"%>@ page isErr原创 2017-11-17 13:18:16 · 884 阅读 · 0 评论 -
拟物化设计与扁平化设计
老罗团队最近发布的Smartisan OS,使用了更拟物的拟物化设计。甚至为了拟物化,而增加了不必要的宫格。另外,听说Ive在推进扁平化设计。什么是?区别何在?1. 拟物化设计 skeuomorphism 代表作品:iOS7.0以下,Android、以及iOS7.0以下时代的大部分app 特点: a 界面:模拟真实物体的材质、质感、细节、光亮原创 2017-11-18 08:17:35 · 4671 阅读 · 1 评论 -
Eclipse常用快捷键
Eclipse常用快捷键1几个最重要的快捷键代码助手:Ctrl+Space(简体中文操作系统是Alt+/)快速修正:Ctrl+1单词补全:Alt+/打开外部Java文档:Shift+F2显示搜索对话框:Ctrl+H快速Outline:Ctrl+O打开资源:Ctrl+Shift+R打开类型:Ctrl+Shift+T显示重构菜单:Alt+Shift+原创 2017-11-13 21:45:14 · 636 阅读 · 0 评论 -
浅谈web前端安全
单纯地在你的客户端弹出信息只是类似于迫使你在自己的房间脱衣服——没人看得到,自然也不算啥恶意行为。那么如果我把你的信息通过脚本发送到我的服务器保存起来呢?先放心,我不打算这么做,也没那笔闲钱去购置一个服务器来做羞羞的事情,也不希望把我这地盘给封掉了。如同标题所写的,今天要聊的是WEB安全机制,但这“前端”二字倒是说的狭义了些,安全的问题大部分还是更依赖于后端的过滤和拦截措施,后端的朋友如果原创 2017-11-30 18:06:17 · 8124 阅读 · 0 评论 -
聊聊HTTPS和SSL/TLS协议
要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识。1. 大致了解几个基本术语(HTTPS、SSL、TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”)3. 大致了解加密算法的概念(尤其是“对称加密与非对称加密”的区别)4. 大致了解 CA 证书的用途考虑到很多技术菜鸟可能不了解上述背景,俺先用最简短的文字描述一下。如果你转载 2017-12-05 19:37:15 · 558 阅读 · 0 评论 -
关于搭建HTTPS服务器服务
关于 HTTPS 的基本原理大家都已经不再陌生,今天和大家说说如何搭建一个支持 HTTPS 的服务端。服务端的 HTTPSHTTPS 已经几乎成为了当前互联网推荐的通信方式,它能最大化保证信息传输的安全,从去年苹果的强制 HTTPS ,到如今各大网站都支持了 HTTPS。它会越来越普及。之前写过几篇关于 HTTPS 原理的文章,有用户留言希望了解一些如何在服务端搭建 HTT原创 2017-12-13 09:36:16 · 2710 阅读 · 0 评论 -
网站自动登录功能的设计
我相信有很多IT者都会遇到公司要求网站可以实现自动登录,那什么是自动登录呢? 所谓自动登陆就是当用户第一次访问网站时,输入用户名和密码,然后勾选了自动登陆复选框,进入首页后,点击退出登陆,关闭网页,再次打开同样的网站,则无需再次输入账号密码,直接进入首页,这种交互方式就是“自动登录”,这是非常好的用户体验,但是具体怎么实现这些功能呢,下面给大家介绍一下我的理解和实现方式。 大家原创 2017-12-14 10:46:26 · 2159 阅读 · 0 评论 -
[科普]关于文件头的那些事
一个文件里面的内容到底是啥?用惯了Windows的人肯定是看后缀。但是后缀这个东西说改就改,不可靠。所以,最保险的还是把文件类型信息写到文件里面,通常来说,也就是写到文件开头的那几个字节。这是最方便,最快捷的用来辨别一个文件真实内容的方法。下面举几个例子:Java class文件的魔数每一个Java Class文件都是以0x CAFEBABE开头的。Java这么做的原因就是为了快速判断一个文件是不原创 2018-01-02 13:24:14 · 2269 阅读 · 0 评论 -
Java同步锁全息详解
一 同步代码块1.为了解决并发操作可能造成的异常,java的多线程支持引入了同步监视器来解决这个问题,使用同步监视器的通用方法就是同步代码块。其语法如下:synchronized(obj){//同步代码块}其中obj就是同步监视器,它的含义是:线程开始执行同步代码块之前,必须先获得对同步监视器的锁定。任何时刻只能有一个线程可以获得对同步监视器的锁定,当同步代原创 2018-01-04 18:15:15 · 1068 阅读 · 0 评论 -
Chrome开发者工具之Network面板
Chrome开发者工具面板面板上包含了Elements面板、Console面板、Sources面板、Network面板、 Timeline面板、Profiles面板、Application面板、Security面板、Audits面板这些功能面板。这些按钮的功能点如下:Elements:查找网页源代码HTML中的任一元素,手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈。Co原创 2017-12-19 20:39:32 · 1808 阅读 · 0 评论 -
[java多线程 ]sleep()和wait()的区别
接触了一些多线程的东西,还是从java入手吧。 相信看这篇文章的朋友都已经知道进程和线程的区别,也都知道了为什么要使用多线程了。 这两个方法主要来源是,sleep用于线程控制,而wait用于线程间的通信,与wait配套的方法还有notify和notifyAll. 区别一:sleep是Thread类的方法,是线程用来 控制自身流程的,比如有一个原创 2018-01-04 17:02:40 · 587 阅读 · 0 评论 -
打造一套安全的UI组件库!
文章较长,耐心观看。现在再开发一套UI框架似乎已经错过了最佳创业时期,毕竟网上优秀的框架一大堆,轻量级的,重量级的,有依赖的,无依赖的,拿来即用的,需要配置的,应有尽有。但是老衲我找遍整个外网发现唯独没有利用Web Component标准库实现的前端框架,要知道组件化可是Vue,React和Angular的招牌卖点之一,如今Web Component标准库可以完美提...原创 2019-08-27 06:44:20 · 1237 阅读 · 4 评论 -
函数式编程中的数组问题
这里只传授最高端的编程技巧...好久没讲技术了,先回忆一下啥是函数式编程(FP)吧,比如FP要求使用表达式,不允许出现语句,这样更接近自然语言。表达式取代经典语句什么叫语句呢?学校编程课本上教的变量声明语句,循环语句,条件判断语句,枚举语句,这些都是语句,也就是说我们再熟悉不过的if/else语句,for/while循环,switch以及try/catch...原创 2019-09-05 12:28:37 · 1296 阅读 · 1 评论