- OpenStack Ironic 裸金属的配置及使用
Ankele
云计算ironic裸金属物理机openstack配置
环境当前OpenStack版本为Rocky操作系统为CentOS7.6api节点即控制节点conductor节点即裸金属计算节点控制节点node1、node2、node3计算节点node1、node2、node3、node4裸金属服务节点node4虚拟IPvip一、安装软件包在所有节点上都安装yum仓库yuminstallcentos-release-openstack-rocky-y在api节点
- linux搭建ceph集群
浓黑的daidai
linuxceph服务器
linux三节点搭建ceph集群主机IP主机名称172.26.50.75node1172.26.50.112node2172.26.50.228node3ceph-mon,ceph-mgr,ceph-mds都搭建在node1上,node2和node3上搭建ceph-osd,每个机器1个osdCeph是一个分布式的存储系统,可以在统一的系统中提供唯一的对象、块和文件存储,Ceph的大致组件如下:1.
- ansible动态主机清单案例
山客泛舟游Y
ansiblelinuxphp
linuxansible动态主机清单案例使用动态清单模板,修改其内容,要求如下:(1)node1是test主机组的成员,其中test主机组可以使用变量:aa=11bb=22(2)node2和node3是prod主机组的成员,其中prod主机组可以使用的变量:cc=33dd=44(3)node1还可以使用的变量:nodevar=xxx1(4)node2还可以使用的变量:nodevar=xxx2(5)
- Spark Shuffle模块详解
晓之以理的喵~~
大数据HadoopSparkspark大数据hadoop
Shuffle,具有某种共同特征的一类数据需要最终汇聚(aggregate)到一个计算节点上进行计算。这些数据分布在各个存储节点上并且由不同节点的计算单元处理。以最简单的WordCount为例,其中数据保存在Node1、Node2和Node3;经过处理后,这些数据最终会汇聚到Nodea、Nodeb处理。这个数据重新打乱然后汇聚到不同节点的过程就是Shuffle。但是实际上,Shuffle过程可能会
- Hbase安装详解
沉默鹰_90
软件安装hbase大数据linux
本文安装环境介绍:a、三台linux服务器,分别命名为node1、node2、node3(已在/etc/hosts文件里做好了ip和名字的映射)b、软件压缩包存储路径:/export/software/c、解压后安装包存储路径:/export/server/d、hadoop版本:hadoop-3.3.0hadoop和hbase兼容性1、下载Hbase网址:https://dlcdn.apache.
- Hadoop集群部署流程
正在绘制中
hadoop大数据分布式
前置要求需要3台虚拟机,系统为Centos7,分别host命名为node1,node2,node3,密码均为root请确保这三台虚拟机已经完成了JDK、SSH免密、关闭防火墙、配置主机名映射等前置操作在3台虚拟机的/etc/hosts文件中,填入如下内容:(同时这也是三台虚拟机的ip地址)192.168.88.131node1192.168.88.132node2192.168.88.133nod
- ES文档索引、查询、分片、文档评分和分析器技术原理
冲上云霄的Jayden
ESelasticsearch索引文档数据更新Bulk分析器分词器文档评分
技术原理索引文档索引文档分为单个文档和多个文档。单个文档新建单个文档所需要的步骤顺序:客户端向Node1发送新建、索引或者删除请求。节点使用文档的_id确定文档属于分片0。请求会被转发到Node3,因为分片0的主分片目前被分配在Node3上。Node3在主分片上面执行请求。如果成功了,它将请求并行转发到Node1和Node2的副本分片上。一旦所有的副本分片都报告成功,Node3将向协调节点报告成功
- etcd单点部署集群及数据备份与恢复
liao__ran
ETCDetcd数据库
etcd单机集群部署下载etcd二进制安装包。https://github.com/etcd-io/etcd/releases创建相关目录mkdir–p/data/etcd/node1mkdir–p/data/etcd/node2mkdir–p/data/etcd/node3在/data/etcd/node1,/data/etcd/node2,/data/etcd/node3创建三个配置文件nod
- C# TreeNode节点加载量过大溢出
vbloveshllm
算法
1、TreeNode节点加载过多导致溢出的问题,代码如下TreeNoderoot=newTreeNode(1);TreeNodenode2=newTreeNode(2);TreeNodenode3=newTreeNode(3);TreeNodenode4=newTreeNode(4);root.Children.Add(node2);root.Children.Add(node3);node2.C
- 配置SSH免密登录
liao_zhan_hao
ssh运维
配置SSH免密登录后续安装的集群化软件,多数需要远程登录以及远程执行命令,我们可以简单起见,配置三台Linux服务器之间的免密码互相SSH登陆1.在每一台机器都执行:ssh-keygen-trsa-b4096一路回车到底即可2.在每一台机器都执行:ssh-copy-idnode1ssh-copy-idnode2ssh-copy-idnode33.执行完毕后,node1、node2、node3之间将
- Nuxt3重构问题总结
_血手人屠_
前端总结前端nuxt3element-plus
一、项目安装1、检查node版本,建议使用Node.js-v18+2、使用nvm管理不同版本的node3、安装nvm-https://github.com/coreybutler/nvm-windows/releases4、安装指定版本的nodenvminstall18.19.05、查看已安装nodenvmls6、使用指定版本的nodenvmuse18.19.07、创建新的nuxt3项目npxnu
- 给linux(centos)操作系统设置主机名的几种方式
萌褚
镜像下载、域名解析、时间同步请点击阿里云开源镜像站一、前言就是我们需要集群部署hadoop,Flink时,写ip地址太长了,然后大家想的就是能不能用比如:node1,node2,node3去代替IP地址,在一个局域网中,每台机器都有一个主机名,便于主机与主机之间的区分,因此为每台机器设置主机名,以容易记忆的方法来相互访问。比如我们在局域网中可以为根据每台机器的功用来为其命名,也可以通过各个节点来命
- hadoop hive spark flink 安装
nsa65223
hadoophivespark
下载地址Indexof/distubuntu安装hadoop集群准备IP地址主机名称192.168.1.21node1192.168.1.22node2192.168.1.23node3上传hadoop-3.3.5.tar.gz、jdk-8u391-linux-x64.tar.gzJDK环境node1、node2、node3三个节点解压tar-zxvfjdk-8u391-linux-x64.tar
- 【Linux系统基础】(6)在Linux上大数据NoSQL数据库HBase集群部署、分布式内存计算Spark环境及Flink环境部署详细教程
老牛源码
Linux教程大数据分布式linux
大数据NoSQL数据库HBase集群部署简介HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。和Redis一样,HBase是一款KeyValue型存储的数据库。不过和Redis设计方向不同Redis设计为少量数据,超快检索HBase设计为海量数据,快速检索HBase在大数据领域应用十分广泛,现在我们来在node1、node2、node3上部署HBase集群。安装HBase依赖Zo
- 树轮基础:二叉树
Myname_China
Java算法
欢迎大家关注我的微信公众号:树的定义:树是数据结构和算法分析与设计中的一种非常重要的结构,由N个结点组成的具有层次结构的模型。其主要有以下几个特点:1、有一个根结点,一般称为root结点2、每一个元素都被称为node3、除了root结点外,其余的结点都会被分为n个互不相交的集合(子树)树形结构的基本术语:结点:树形结构里面的元素子树:当结点大于1时,其余的结点分为互不相交的集合称为子树度:一个结点
- Hadoop入门学习笔记——二、在虚拟机里部署HDFS集群
faith瑞诚
大数据学习笔记hadoop学习笔记
视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd=5ay8Hadoop入门学习笔记(汇总)目录二、在虚拟机里部署HDFS集群2.1.部署node1虚拟机2.2.部署node2和node3虚拟机2.3.初始化并启动Hadoop集群(格
- Linux系统生成免密码登录,保姆级教程
爱上雪茄
大数据linux运维服务器
1、节点规划,我们这里为了简单,就直接采用root账号,生产中,需要创建专门的用户组和用户。节点名称用户用户组密码ipnode1rootroot123456192.168.42.139node2rootroot123456192.168.42.140node3rootroot123456192.168.42.1412、这里指的node1,node2,node3,是需要在host里面配置的,每台服务
- Linux集群实用脚本
Hadoop_Liang
小技巧LinuxHadooplinux脚本
现有三台虚拟机,例如:node2、node3、node4三台虚拟机配置了免密登录,安装了hadoop等软件。相关集群实用脚本命令统一执行jps命令jpsall#!/bin/bashforhostinnode2node3node4do echo===============$host=============== ssh$hostjpsdone统一执行命令集群统一执行命令,执行的命令通过
- hadoop集群二之hadoop安装
皮皮虾不皮呀
大数据hadoop
上一篇我们已经准备好三台虚拟机,计划一主两从搭建hadoop集群。没安装的可以参考一下。虚拟机安装传送门:mac搭建hadoop集群之虚拟机安装集群规划主机角色node1NNDNRMNMnode2SNNDNNMnode3DNNM集群配置hadoop3.3安装包下载更改主机名分别将三台虚拟机分别更改为node1、node2、node3。vim/etc/hostname新增host映射vim/etc/
- stl标准库系列之--list
slowlytalk
#STL标准模版库stllistc++
1、概述2、节点node3、定义4、特点5、创建方法6、内存管理7、成员函数8、迭代器1、概述list容器,是序列容器的一种,是一个双向链表,因此又被称作双向链表容器。相较于vector的连续性空间来说,list会显得比较复杂。即该容器的底层是以双向链表的形式实现的。这意味着,list容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。可以看到,list容器中各个元素的前
- KubeSphere容器平台(Kubernetes系统上、单节点linux系统、多节点linux系统搭建)+ KubeSphere操作(上传阿里云,打包镜像、云上部署)
A尘埃
kuberneteslinux阿里云KubeSphere
Kubernetes上安装KubeSphere三台服务器配置一、安装Docker二、安装Kubernetes保存初始化的信息执行其中的(在master节点上执行)执行其中的,加入work节点(三台服务器都要执行)查看节点三、安装KubeSphere前置环境Node2和Node3执行和master节点的关联配置默认存储(未完……待续)集群指标监控组件metrics-server(未完……待续)四、安
- Deployment脚本部署Tomcat集群:外部访问、负载均衡、文件共享及集群配置调整
程序员Forlan
运维kubernetes云原生
文章目录前置知识一、Deployment脚本部署Tomcat集群二、外部访问Tomcat集群三、利用Rinted对外提供Service负载均衡支持1、创建服务2、端口转发工具Rinetd3、定义jsp文件查看转发到哪个节点四、部署配置挂载点五、基于NFS实现集群文件共享1、master2、node3、验证六、集群配置调整与资源限定1、增加资源限定2、调整节点总结1、ERROR:cannotveri
- VMware虚拟机搭建+云平台购买搭建(阿里云+UCloud)【设置主机名以及主机名映射、配置免密登录、配置JDK】
A尘埃
阿里云java云计算UCloud云主机
本地虚拟机的搭建一、准备网段在VMware的虚拟网络编辑器中将VMnet8虚拟网卡的网段设置为:192.168.88.0网关设置为:192.168.88.2二、下载CentOS操作系统文件,并安装三、克隆多台虚拟机依照同样的方法,克隆出node2,node3,共三台虚拟机四、对每台虚拟机设置相关硬件内存五、虚拟机系统设置①、主机名\ip\SSH免密登录Ⅰ、node1,192.168.88.131进
- 4.hadoop集群扩容与hive异常处理
想成为数据分析师的开发工程师
Hadoop大数据分析项目hadoophive大数据数据分析
异常处理当我们使用sqoop同步数据时候,出现了异常。Errorwritingfile‘/tmp/MYYEBa32’(Errcode:28-NospaceleftondeviceINFOmapreduce.Job:Theurltotrackthejob:http://node3:8088/proxy/application_1681182527108_0002/INFOmapreduce.Job:
- ansible部署kafka集群
hansaes
ansiblekafkaansible分布式
ansible部署kafka集群其中一台作为Ansible的母机并命名为ansible,另外三台云主机命名为node1、node2、node3,通过附件中的/ansible/ansible.tar.gz软件包在ansible节点安装Ansible服务;使用这一台母机,编写Ansible脚本(在/root目录下创建example目录作为Ansible工作目录,部署的入口文件命名为cscc_insta
- EMQX-5.3.1单机集群部署并基于Nginx实现负载均衡
Hoking
nginx
本例单机集群部署使用三个节点,分别为node1、node2、node3一、安装与配置1创建数据目录mkdir-pnode1/datanode1/logsmkdir-pnode2/datanode2/logsmkdir-pmode3/datanode3/logs2数据目录授权chown1000node1/node2/node3/chown1000node1/data/node1/logs/chown
- zookeeper集群选举流程
Apache学子
zookeeper
zookeeper的集群选举流程(票数过半当选机制):全新集群选举:1.node1先启动,将票投给自己node1:1票2.node2再启动,将票投给自己node1:1票node2:1票3.改票环节:查询谁的zid值大就投给谁node1:0票node2:2票4.node3启动,将票投给自己node1:0票node2:2票node3:1票5.改票关节,查询谁的zid值大,就投给谁node1:0票nod
- 刷题记录第二十六天-环形链表
onlyzzr
每日一题链表算法数据结构
#includeusingnamespacestd;structListNode{intval;ListNode*next;ListNode(intx):val(x),next(nullptr){}};intmain(){ListNode*node1=newListNode(1);ListNode*node2=newListNode(2);ListNode*node3=newListNode(3)
- kafka node3 连接异常导致应用无法消费、生产数据
是阿威啊
hadoop组件部署kafka分布式
kafkanode3连接异常导致应用无法消费、生产数据,基本的筛查方式全部尝试但是没有效果,查遍全网没有解决办法。确认防火墙关闭也不行,最后先启动防火墙,再关闭,解决问题报错语句WARN[Controllerid=0,targetBrokerId=0]Connectiontonode3(/192.168.230.133:9092)couldnotbeestablished.Brokermaynot
- ceph集群节点扩容osd,rgw,mon,mgr
人生匆匆
cephlinuxbash网络
环境node110.0.40.133master节点&&ceph节点node210.0.40.134ceph节点node310.0.40.135ceph节点node410.0.40.136新增节点一、初始化1、添加主机名与IP对应关系:node1、node2、node3、node4都执行vim/etc/hosts10.0.40.133node110.0.40.134node210.0.40.135
- java线程Thread和Runnable区别和联系
zx_code
javajvmthread多线程Runnable
我们都晓得java实现线程2种方式,一个是继承Thread,另一个是实现Runnable。
模拟窗口买票,第一例子继承thread,代码如下
package thread;
public class ThreadTest {
public static void main(String[] args) {
Thread1 t1 = new Thread1(
- 【转】JSON与XML的区别比较
丁_新
jsonxml
1.定义介绍
(1).XML定义
扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标
- c++ 实现五种基础的排序算法
CrazyMizzz
C++c算法
#include<iostream>
using namespace std;
//辅助函数,交换两数之值
template<class T>
void mySwap(T &x, T &y){
T temp = x;
x = y;
y = temp;
}
const int size = 10;
//一、用直接插入排
- 我的软件
麦田的设计者
我的软件音乐类娱乐放松
这是我写的一款app软件,耗时三个月,是一个根据央视节目开门大吉改变的,提供音调,猜歌曲名。1、手机拥有者在android手机市场下载本APP,同意权限,安装到手机上。2、游客初次进入时会有引导页面提醒用户注册。(同时软件自动播放背景音乐)。3、用户登录到主页后,会有五个模块。a、点击不胫而走,用户得到开门大吉首页部分新闻,点击进入有新闻详情。b、
- linux awk命令详解
被触发
linux awk
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v]大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=val
- 各种语言比较
_wy_
编程语言
Java Ruby PHP 擅长领域
- oracle 中数据类型为clob的编辑
知了ing
oracle clob
public void updateKpiStatus(String kpiStatus,String taskId){
Connection dbc=null;
Statement stmt=null;
PreparedStatement ps=null;
try {
dbc = new DBConn().getNewConnection();
//stmt = db
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
矮蛋蛋
zookeeper
原文地址:
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
安装和配置详解
本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两
- tomcat数据源
alafqq
tomcat
数据库
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。
没有使用JNDI时我用要这样连接数据库:
03. Class.forName("com.mysql.jdbc.Driver");
04. conn
- 遍历的方法
百合不是茶
遍历
遍历
在java的泛
- linux查看硬件信息的命令
bijian1013
linux
linux查看硬件信息的命令
一.查看CPU:
cat /proc/cpuinfo
二.查看内存:
free
三.查看硬盘:
df
linux下查看硬件信息
1、lspci 列出所有PCI 设备;
lspci - list all PCI devices:列出机器中的PCI设备(声卡、显卡、Modem、网卡、USB、主板集成设备也能
- java常见的ClassNotFoundException
bijian1013
java
1.java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 添加包common-logging.jar2.java.lang.ClassNotFoundException: javax.transaction.Synchronization
- 【Gson五】日期对象的序列化和反序列化
bit1129
反序列化
对日期类型的数据进行序列化和反序列化时,需要考虑如下问题:
1. 序列化时,Date对象序列化的字符串日期格式如何
2. 反序列化时,把日期字符串序列化为Date对象,也需要考虑日期格式问题
3. Date A -> str -> Date B,A和B对象是否equals
默认序列化和反序列化
import com
- 【Spark八十六】Spark Streaming之DStream vs. InputDStream
bit1129
Stream
1. DStream的类说明文档:
/**
* A Discretized Stream (DStream), the basic abstraction in Spark Streaming, is a continuous
* sequence of RDDs (of the same type) representing a continuous st
- 通过nginx获取header信息
ronin47
nginx header
1. 提取整个的Cookies内容到一个变量,然后可以在需要时引用,比如记录到日志里面,
if ( $http_cookie ~* "(.*)$") {
set $all_cookie $1;
}
变量$all_cookie就获得了cookie的值,可以用于运算了
- java-65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
bylijinnan
java
参考了网上的http://blog.csdn.net/peasking_dd/article/details/6342984
写了个java版的:
public class Print_1_To_NDigit {
/**
* Q65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
* 1.使用字符串
- Netty源码学习-ReplayingDecoder
bylijinnan
javanetty
ReplayingDecoder是FrameDecoder的子类,不熟悉FrameDecoder的,可以先看看
http://bylijinnan.iteye.com/blog/1982618
API说,ReplayingDecoder简化了操作,比如:
FrameDecoder在decode时,需要判断数据是否接收完全:
public class IntegerH
- js特殊字符过滤
cngolon
js特殊字符js特殊字符过滤
1.js中用正则表达式 过滤特殊字符, 校验所有输入域是否含有特殊符号function stripscript(s) { var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
- hibernate使用sql查询
ctrain
Hibernate
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transa
- linux shell脚本中切换用户执行命令方法
daizj
linuxshell命令切换用户
经常在写shell脚本时,会碰到要以另外一个用户来执行相关命令,其方法简单记下:
1、执行单个命令:su - user -c "command"
如:下面命令是以test用户在/data目录下创建test123目录
[root@slave19 /data]# su - test -c "mkdir /data/test123" 
- 好的代码里只要一个 return 语句
dcj3sjt126com
return
别再这样写了:public boolean foo() { if (true) { return true; } else { return false;
- Android动画效果学习
dcj3sjt126com
android
1、透明动画效果
方法一:代码实现
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_main, container, fals
- linux复习笔记之bash shell (4)管道命令
eksliang
linux管道命令汇总linux管道命令linux常用管道命令
转载请出自出处:
http://eksliang.iteye.com/blog/2105461
bash命令执行的完毕以后,通常这个命令都会有返回结果,怎么对这个返回的结果做一些操作呢?那就得用管道命令‘|’。
上面那段话,简单说了下管道命令的作用,那什么事管道命令呢?
答:非常的经典的一句话,记住了,何为管
- Android系统中自定义按键的短按、双击、长按事件
gqdy365
android
在项目中碰到这样的问题:
由于系统中的按键在底层做了重新定义或者新增了按键,此时需要在APP层对按键事件(keyevent)做分解处理,模拟Android系统做法,把keyevent分解成:
1、单击事件:就是普通key的单击;
2、双击事件:500ms内同一按键单击两次;
3、长按事件:同一按键长按超过1000ms(系统中长按事件为500ms);
4、组合按键:两个以上按键同时按住;
- asp.net获取站点根目录下子目录的名称
hvt
.netC#asp.nethovertreeWeb Forms
使用Visual Studio建立一个.aspx文件(Web Forms),例如hovertree.aspx,在页面上加入一个ListBox代码如下:
<asp:ListBox runat="server" ID="lbKeleyiFolder" />
那么在页面上显示根目录子文件夹的代码如下:
string[] m_sub
- Eclipse程序员要掌握的常用快捷键
justjavac
javaeclipse快捷键ide
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 写道 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可
- c++编程随记
lx.asymmetric
C++笔记
为了字体更好看,改变了格式……
&&运算符:
#include<iostream>
using namespace std;
int main(){
int a=-1,b=4,k;
k=(++a<0)&&!(b--
- linux标准IO缓冲机制研究
音频数据
linux
一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。1.缓存I/O有以下优点:A.缓存I/O使用了操作系统内核缓冲区,
- 随想 生活
暗黑小菠萝
生活
其实账户之前就申请了,但是决定要自己更新一些东西看也是最近。从毕业到现在已经一年了。没有进步是假的,但是有多大的进步可能只有我自己知道。
毕业的时候班里12个女生,真正最后做到软件开发的只要两个包括我,PS:我不是说测试不好。当时因为考研完全放弃找工作,考研失败,我想这只是我的借口。那个时候才想到为什么大学的时候不能好好的学习技术,增强自己的实战能力,以至于后来找工作比较费劲。我
- 我认为POJO是一个错误的概念
windshome
javaPOJO编程J2EE设计
这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。
&