- Linux内核内存管理:分页技术的核心原理
深度Linux
Linux内存管理linux服务器运维
你有没有想过,当你在电脑上同时打开多个程序,一边听音乐、一边写文档,还挂着下载任务时,系统是怎么有条不紊地运作,不让这些程序“打架”争内存的呢?答案就藏在这神奇的分页机制里。它就像是一位拥有超能力的空间魔法师,面对有限的物理内存“空间”,大手一挥,将虚拟的逻辑地址空间和物理内存空间,都精准地划分成了一块块同等大小、排列规整的“魔法方块”——也就是页。然后,凭借着一套如同精密齿轮组般的映射规则,让每
- 深入了解Linux内核:task_struct结构详解
深度Linux
Linux内存管理C/C++Linux内核数据结构
Linux操作系统的广袤世界里,进程管理宛如一座大厦的基石,支撑着整个系统的稳定运行与高效运转。而task_struct结构体,无疑是进程管理这座大厦的核心支柱,它承载着进程的关键信息,贯穿于进程从诞生到消亡的整个生命周期,在进程创建、调度、通信以及资源管理等各个关键环节都发挥着不可替代的作用。深入探究task_struct结构体,就如同开启一场探秘Linux内核底层运作奥秘的奇妙之旅,能够帮助我
- c语言线程Pthread讲解
jacklin_001
C语言学习笔记
POSIX线程(POSIXthreads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、MacOSX等)中,都使用Pthreads作为操作系统的线程。Windows操作系统也有其移植版pthreads-win32作用线程库实行了POSIX线程标准通常称为Pthreads。POSIX线程具有很好的可移植性,使用p
- Linux 6种查看日志方法
LYX3693
服务器javalinux
Linux查看日志的命令有多种:tail、cat、head、echo等,本文只介绍几种常用的方法。1、tailtail-n10test.log查询日志尾部最后10行的日志;tail-n+10test.log查询10行之后的所有日志;tail-fn10test.log循环实时查看最后1000行记录(最常用的)一般还会配合着grep用,例如:tail-fn1000test.log|grep'关键字'如
- C++11·部分重要语法III
2401_86702190
c++开发语言
目录emplaceemplace和push区别例:list的模拟实现部分代码默认移动构造和移动赋值默认函数的控制小知识emplaceC++11以后STL容器新增了emplace系列接口,均为模版可变参数,功能是插入,但总体而言比push和insert更高效,而且有更新的玩法,假设一个容器container,emplace可以支持直接插入构造T对象的参数,可以直接在容器空间构造T对象。emplace
- 一文总结常见项目排查
xyliiiiiL
java服务器数据库
慢sql排查怎么排查通过如下命令,开启慢SQL监控,执行成功之后,客户端需要重新连接才能生效。--开启慢SQL监控setglobalslow_query_log=1;默认的慢SQL阀值是10秒,可以通过如下语句查询慢SQL的阀值。--查询慢SQL的阀值showvariableslike"long_query_time";我们可以通过如下方式,将慢SQL阀值配置成0.2秒。--修改慢SQL的阀值se
- python---linux系统CPU、内存、磁盘监控,钉钉告警
大眼、不聚光
pythonpythonlinux钉钉
使用以下公式生成签名:importtimeimporthmacimporthashlibimportbase64timestamp=str(int(time.time()*1000))secret='你的加签密钥'string_to_sign=timestamp+"\n"+secrethmac_code=hmac.new(secret.encode('utf-8'),string_to_sign.
- Eigen库小记
MobiCetus
机器学习人工智能
有时候脑子会突然卡住,忘记eigen库里的有些细节。所以还是决定来写个笔记把常用的用法总结一下,方便查阅。1、Installationg++-I/path/to/eigen/program.cpp-oprogram在CmakeLists中添加find_package(Eigen3REQUIRED)include_directories(&{EIGEN#_INCLUDE_DIR})2、Eigen库的
- 守护进程(Background Process)详解
Dklau-c
Linux系统知识linux服务器运维
什么是守护进程?守护进程(backgroundprocess)是Linux系统中一种特殊的进程类型,它们在后台运行,不与主线程竞争资源,通常用于处理系统性的任务。守护进程运行在内核空间,可以在系统负载较重时自动激活,并在特定条件下(如时间、信号等)自动退出。守护进程的特点后台运行:守护进程通常在用户空间启动,但运行时切换到内核空间,以执行后台任务。资源占用低:守护进程不阻塞主线程,能够在主线程完成
- Linux下,修改环境变量的几种方法
Dklau-c
Linux系统知识chrome前端linux
在Linux下,修改环境变量可以通过几种不同的方法实现,具体取决于你想要修改的环境变量的范围和持久性。以下是一些常用的方法:1.使用export命令(临时修改)export命令用于在当前shell会话中设置或导出环境变量。这种方法修改的环境变量只在当前终端会话中有效,关闭终端后就会失效。export=例如,要添加一个新的路径到PATH环境变量中,可以使用:exportPATH=$PATH:/new
- 自定义类型:结构体(1)
zzzh1216
c语言
1.结构体回顾结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。1.1结构的声明structtag{member-list;}variable-list;例如描述一个学生:structStu{charname[20];intage;charsex[5];};1.2结构体变量的创建和初始化#includestructStu{charname[20];intage;char
- FreeRTOS 线程本地存储(Thread Local Storage, TLS)详解
指令集诗人
FREERTOSarm开发c语言
FreeRTOS中的线程本地存储(ThreadLocalStorage,TLS)是一种允许每个任务(线程)独立存储私有数据的机制,类似于其他操作系统(如Linux的__thread或Windows的TlsAlloc)的线程局部存储。通过TLS,每个任务可以拥有独立的数据副本,避免全局变量在多任务环境中的竞争问题。1.FreeRTOS中的TLS实现原理FreeRTOS通过任务控制块(TaskCont
- LVS负载均衡群集——DR模式
wys_jj
lvs负载均衡运维
一、直接路由1.1.直接路由1.2.DR模式的特点1.3.部署DR模式192168.52.140调度服务器关闭防火墙与selinux,下载ipvsadm[root@localhost~]#systemctlstopfirewalld.service[root@localhost~]#setenforce0[root@localhost~]#yuminstallipvsadm-y192.168.52
- 1.2-WAF\CDN\OSS\反向代理\负载均衡
梧六柒
网络安全网络安全
WAF:就是网站应用防火墙,有硬件类、软件类、云WAF;还有网站内置的WAF,内置的WAF就是直接嵌在代码中的安全防护代码硬件类:Imperva、天清WAG软件:安全狗、D盾、云锁云:阿里云盾、腾讯云WAF除了安全狗,D盾以前的产品还可以试试,新型的WAF绕不了安装雷池WAF:高版本Linux系统一条命令就可以安装了,低版本要手动安装实验版本是:Ubuntu22.04bash-c"$(curl-f
- 深入解析:ElasticSearch Query 查询方式
喵手
零基础学Javaelasticsearch大数据搜索引擎
全文目录:开篇语前言摘要概述ElasticSearchQuery查询方式详解1.Match查询(全文搜索)1.1Match查询示例1.2Match查询参数扩展2.Term查询(精准查询)2.1Term查询示例2.2Terms查询3.Bool查询(组合查询)3.1Bool查询示例4.Range查询(范围查询)4.1Range查询示例4.2日期范围查询5.Aggregation查询(聚合查询)5.1聚
- cmake之旅(1)
m晴朗
cmakecmakeqtc++makefile
cmake之旅(1)1构建的过程2手动构建2.1环境2.2开始编译3使用Makefile简化构建3.1环境3.2编写Makefile4使用cmake构建4.1环境4.2编写CMakeLists.txt1构建的过程我们先写一个简单的的程序:#includeintmain(){std::cout#defineNUM12intmain(){//注释std::cout#include"add.h"#inc
- Perf生成火焰图分析程序性能
hunteng
linux
1.一般linux系统自带perf,没有需要安装,没有需要安装sudoaptinstalllinux-tools-commonlinux-tools-generic2.额外安装FlameGraphgitclonehttps://github.com/brendangregg/FlameGraph.git3.运行需要把运行库so拷贝到系统目录sudoperfrecord-ecycles-F99-a-
- 基于MFC按钮逻辑
没学上了
mfcc++
voidCSUCCES1Dlg::SetDlgItemState()//IDC_BTN_INIT初始化按钮{GigeStatestate=GigeState::ARV_NONE;//GigeState是一个枚举类型,stat状态为ARV_NONEintidx=((CListBox*)GetDlgItem(IDC_LIST_GIGE))->GetCurSel();//GetDlgItem是MFC框架
- 鬼泣:敌人受击
qq_42863961
鬼泣虚幻
文章目录索敌显示开始游戏鼠标场外setinputmodegameonlyupdateredirectorreference:更新路径依赖raider动画骨架retargetsources:可以兼容哪些骨架姿势蒙太奇:播放受击动画受击系统伤害检测受击反应碰撞箱跟随武器骨骼boxextent:尺寸碰撞queryonly:只查询碰撞结果,不造成碰撞setenablecollision:设置碰撞控制武器何
- SQL EXISTS 与 NOT EXISTS 运算符
Full Stack Developme
SQLsql数据库
EXISTS和NOTEXISTS是SQL中的逻辑运算符,用于检查子查询是否返回任何行。它们通常用在WHERE子句中,与子查询一起使用。EXISTS运算符EXISTS运算符用于检查子查询是否返回至少一行数据。如果子查询返回任何行,EXISTS返回TRUE;否则返回FALSE。SELECTcolumn_name(s)FROMtable_nameWHEREEXISTS(subquery);查找至少有一个
- Linux xargs
Full Stack Developme
Linuxlinux运维服务器
在平时的系统管理中,你是否正在寻找不同的方法来简化你的Linux工作流程并希望自动化你的任务?Linuxxargs命令可能正是你不知道的。在本文中,我们将看到一些使用xargs对其他命令生成的项目列表执行命令的实际示例。作为经常使用Linux的人,我们发现xargs命令是我们工作流程中一个有价值的工具。它帮助我们轻松地对大量文件或数据执行复杂的任务。xargs命令在处理长列表或数据时特别有用,因为
- Tomcat
jiangrenbao
java
Web应用服务器,也是一个Servlet/JSP容器。Tomcat作为Servlet容器,负责处理客户的.jsp动态页面的请求,把请求传送给Servlet,并将Servlet的响应传送回给客户。Linux中启动apache-tomcat-8.5.61.tar.gztar-zxvfapache-tomcat-8.5.57.tar.gzmvapache-tomcat-8.5.57/usr/local/
- 力扣题目之合并两个有序链表
虚像难
链表算法leetcode面试
力扣题目之合并两个有序链表这篇文章是我第一次写博客,主要作用是做个记录。避免自己做了就忘。如果大家有什么更好的算法希望也能在评论区告诉我。题目:给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3
- 工具、数据与情绪:计算机技术的三重境界
狒狒的代码王国
学习方法深度学习学习
此篇文章是我对计算机应用的理解,写着玩的。第一层境界:工具的熟练与桎梏计算机语言和工具构成了我们与数字世界对话的基础语法。Java、C、C++、Python等编程语言,IntelliJIDEA、VisualStudio等开发环境,Linux、Windows等操作系统,这些都是技术人员赖以生存的"锤子与钉子"。在这个层面上,我们如同工匠学徒,专注于工具的握持方式、使用技巧和保养方法。一个优秀的程序员
- 前端解决get请求传递数组
前端小趴菜05
前端
直接使用get请求传递数组,会报错解决方案1.传递字符串,将数组转为字符串进行传递,后端也以字符串接受//使用join方法将数组转为字符串letdata=[1,2,3,4,5]letparams=data.join(',')//1,2,3,4,52.将数组转换为查询字符串格式,并附加到URL上constarrayToQueryString=(data:number[],key:string)=>{
- 自建ipa下载服务器的方法(最简单,使用在线工具)
上架ipa
H5开发移动开发APPipa测试ipa下载服务ipa安装搭建ipa服务
自建ipa下载服务非常复杂,首先要拥有域名,其实要用https,然后还要写plist那些,plist的语法还非常复杂,对于普通的ios开发者来说,自建下载服务非常麻烦,也没有必要。因此,我们测试ipa文件的时候,通常使用在线工具,上传ipa就可以帮我们生成安装二维码,扫码即可安装。废话不多说了,下面教下大家怎么在线生成二维码:打开香蕉云编平台:https://www.yunedit.com/nei
- 【Rust CAD开发入门】第一章 环境搭建 第一节 Rust安装指南:Windows、macOS和Linux系统上的详细步骤
Source.Liu
用Rust写CADrust开发语言windows
文章目录一、Windows系统下载rustup-init.exe:运行rustup-init.exe:配置环境变量:验证安装:二、macOS系统安装Homebrew(如果尚未安装):三、Linux系统(以Ubuntu为例)安装依赖:使用rustup脚本安装Rust:四、注意事项安装Rust可以通过其官方提供的rustup工具来完成,以下是详细的安装步骤:一、Windows系统下载rustup-in
- 可迭代(Iterable)对象与对应的迭代器(Iterator)对象
被放养的研究生
Python算法比赛python开发语言
常见可迭代对象有string,list,tuple,set,dictionary,可迭代(Iterable)对象和迭代器(Iterator)对象不同,比如,打印字符串对象,输出的是字符串,打印字符串迭代器对象,输出的是字符串迭代器的地址。但是作为输入,可迭代对象与对应迭代器对象是等价的。例如,字符串对象str与字符串迭代器对象it作为list()的输入,输出都是[‘1’,‘2’,‘3’],代码如下
- 解压多个文件
被放养的研究生
bash
Linuxfortarin*.tar.gz;dotarxvf$tar;donefortarin*.tar.bz2;dotarxvf$tar;doneWindowsPowerShellGet-ChildItem-Filter*.tar.gz|ForEach-Object{tar-xzvf$_.Name}说明:Get-ChildItem-Filter*.tar.gz获取当前目录下所有.tar.gz文件
- SOEM中的ec_salve从机结构体释义
小鱼叉
驱动开发
SOEM中的ec_salve从机结构体释义代码/**forlistofethercatslavesdetected*/typedefstructec_slave{/**stateofslave*/uint16state;/**ALstatuscode*/uint16ALstatuscode;/**Configuredaddress*/uint16configadr;/**Aliasaddress*
- 矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
- JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
- JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
- JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
- Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
- 用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
- JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
- Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?xml version=
"1.0"&n
- Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
- 查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
- Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
- AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
- [Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
- 【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
- Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
- unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
- 《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
- struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
- redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
- mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
- 爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
- 转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
- win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
- Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
- 错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
- 数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
- Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
- ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
- 将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。