你要的全在下面:數(shù)據(jù)庫(kù)已經(jīng)有4代了產(chǎn)品很多。
目前創(chuàng)新互聯(lián)公司已為超過(guò)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、西平網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
DBA課程更新內(nèi)容大綱:
序章 DBA職業(yè)體系與數(shù)據(jù)庫(kù)產(chǎn)品趨勢(shì)
What is DBA?
DBA成長(zhǎng)體系與職業(yè)方向(0-30W-50W-100W-???)
數(shù)據(jù)庫(kù)發(fā)展歷史,產(chǎn)品迭代趨勢(shì)與職業(yè)學(xué)習(xí)方向
第一部分 OLTP數(shù)據(jù)庫(kù)-MySQL(約1天)
MySQL基礎(chǔ)入門(mén)
MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介
什么是數(shù)據(jù)庫(kù)?什么是OLTP?
為什么學(xué)習(xí)MySQL?MySQL產(chǎn)品迭代
一二線(xiàn)大廠MySQL主流版本功能使用與特性介紹(5.1,5.6,5.7,8.0)**獨(dú)家**
MySQL部署與管理體系
5.7,8.0版本企業(yè)規(guī)范部署,啟動(dòng)
MySQL管理體系講解
MySQL產(chǎn)品架構(gòu)分析與基礎(chǔ)管理
MySQL基礎(chǔ)架構(gòu)解析(一條SQL是如何執(zhí)行的)
MySQL啟動(dòng)過(guò)程
MySQL連接的生命與使命
MySQL表結(jié)構(gòu)實(shí)現(xiàn)原理
MySQL開(kāi)發(fā)應(yīng)用(約1.5天)
MySQL ? ? ? SQL基礎(chǔ)應(yīng)用
聲明式式語(yǔ)言與SQL語(yǔ)言
SQL語(yǔ)言應(yīng)用場(chǎng)景與sqlmode
MySQL開(kāi)發(fā)工具選擇與使用
MySQL字符串類(lèi)型與字符集
MySQL語(yǔ)句類(lèi)型介紹(DDL,DCL,DML,DQL)
SQL之查詢(xún)基礎(chǔ)
SQL之聚合與排序
SQL之?dāng)?shù)據(jù)更新
SQL之復(fù)雜查詢(xún)
SQL之集合運(yùn)算
MySQL ? ? ? SQL高級(jí)處理與開(kāi)發(fā)
函數(shù)開(kāi)發(fā)與應(yīng)用
存儲(chǔ)過(guò)程,觸發(fā)器,事件
表分區(qū)管理及企業(yè)級(jí)應(yīng)用場(chǎng)景
Online DDL解析與開(kāi)源生態(tài)OPS
窗口函數(shù)講解及應(yīng)用場(chǎng)景
MySQL JSON開(kāi)發(fā)及應(yīng)用
一二線(xiàn)大廠MySQL企業(yè)級(jí)開(kāi)發(fā)規(guī)范詳解**獨(dú)家**
MySQL核心技術(shù)
MySQL ? ? ? InnoDB索引實(shí)現(xiàn)原理及執(zhí)行計(jì)劃分析(約0.5天)
索引介紹
1.????? 索引的由來(lái)
2.????? 表和索引結(jié)構(gòu)
3.????? 表聚簇與索引行
4.????? 表行與索引組織表
MySQL索引介紹
InnoDB索引B+ tree的索引設(shè)計(jì)
聚簇索引與二級(jí)索引
InnDB索引插入過(guò)程
數(shù)據(jù)類(lèi)型對(duì)索引應(yīng)用的使用影響
執(zhí)行計(jì)劃介紹及結(jié)果剖析
索引優(yōu)化基礎(chǔ)實(shí)戰(zhàn)演練
企業(yè)級(jí)索引優(yōu)化實(shí)戰(zhàn)案例(億萬(wàn)級(jí)QPS的索引優(yōu)化與索引上線(xiàn))**獨(dú)家**
MySQL InnoDB存儲(chǔ)引擎技術(shù)內(nèi)幕與深入講解(約1天)
Mysql存儲(chǔ)引擎介紹與功能特性
InnoDB引擎源代碼目錄結(jié)構(gòu)與存儲(chǔ)引擎文件組織
InnoDB存儲(chǔ)引擎核心架構(gòu)介紹及解析
InnoDB數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)
InnoDB事務(wù)詳解及ACID特性解析
InnoDB 日志管理機(jī)制Undo與Redo
InnoDB事務(wù)與隔離級(jí)別
InnoDB MVCC及鎖機(jī)制
MySQL日志管理與實(shí)戰(zhàn)(0.5)
General log詳解
Error log詳解
企業(yè)級(jí)Binary log with Data pipeline **獨(dú)家**
企業(yè)級(jí)Slowlog場(chǎng)景應(yīng)用**獨(dú)家**
MySQL備份恢復(fù)與遷移(0.5)
備份工具介紹與使用場(chǎng)景解析
一二線(xiàn)大廠過(guò)萬(wàn)數(shù)據(jù)節(jié)點(diǎn)備份策略**獨(dú)家**
一二線(xiàn)大廠Mysqldump核心原理與企業(yè)級(jí)實(shí)戰(zhàn)演練**獨(dú)家**
一二線(xiàn)大廠Xtrabackup核心原理與企業(yè)級(jí)實(shí)戰(zhàn)演練**獨(dú)家**
Enterprise Backup企業(yè)級(jí)生態(tài)工具介紹與應(yīng)用
MySQL主從復(fù)制深入(約1天)
主從復(fù)制簡(jiǎn)介與簡(jiǎn)單搭建
主從復(fù)制工作原理解析
主從數(shù)據(jù)一致性方案講解(半同步,全同步)
MySQL主從復(fù)制實(shí)戰(zhàn)
1.????? 延時(shí)復(fù)制
2.????? 過(guò)濾復(fù)制
3.????? 多源復(fù)制
MySQL GTID復(fù)制
企業(yè)級(jí)主從復(fù)制故障分析與處理方案
億級(jí)QPS MySQL節(jié)點(diǎn)故障轉(zhuǎn)移實(shí)戰(zhàn)案例**獨(dú)家**
MySQL高可用架構(gòu)(1天)
一二線(xiàn)大廠過(guò)萬(wàn)集群規(guī)模高可用架構(gòu)MHA+BLB企業(yè)級(jí)實(shí)戰(zhàn)**獨(dú)家**
Mycat,DBLE企業(yè)級(jí)實(shí)戰(zhàn)
MySQL企業(yè)級(jí)優(yōu)化與實(shí)戰(zhàn)(約1天)
打造高性能MySQL
企業(yè)級(jí)MySQL參數(shù)優(yōu)化實(shí)戰(zhàn)**獨(dú)家**
企業(yè)級(jí)T0級(jí)別故障案例解析**獨(dú)家**
阿里云數(shù)據(jù)庫(kù)產(chǎn)品(RDS與PolarDB)(選修二選一) (1天)
企業(yè)級(jí)RDS介紹,使用與故障案例(百度云RDS 運(yùn)維DBA分享或交流)**獨(dú)家**
企業(yè)級(jí)PolarDB業(yè)務(wù)場(chǎng)景解析(阿里團(tuán)隊(duì)PolarDB P7交付架構(gòu)師分享或交流)**獨(dú)家**
第二部分 NoSQL
Redis核心技術(shù)(2天)
Redis產(chǎn)品介紹與應(yīng)用場(chǎng)景簡(jiǎn)析
Redis安裝,部署,使用
Redis數(shù)據(jù)類(lèi)型詳解與應(yīng)用
Redis集群架構(gòu)講解與實(shí)戰(zhàn)(哨兵,cluster)
千億級(jí)Redis集群參數(shù)優(yōu)化實(shí)戰(zhàn)**獨(dú)家**
千億級(jí)企業(yè)級(jí)Redis核心案例講解與業(yè)務(wù)場(chǎng)景解析**獨(dú)家**
MongoDB核心技術(shù)(2天)
MongoDB產(chǎn)品介紹與應(yīng)用場(chǎng)景簡(jiǎn)析
MongoDB安裝,部署及架構(gòu)解析
MongoDB數(shù)據(jù)類(lèi)型與運(yùn)維管理
MongoDB集群架構(gòu)講解與實(shí)戰(zhàn)
企業(yè)級(jí)MongoDB參數(shù)優(yōu)化實(shí)戰(zhàn)**獨(dú)家**
BAT千萬(wàn)元級(jí)別故障案例分享**獨(dú)家**
ES核心技術(shù)(2天)
ES產(chǎn)品介紹與應(yīng)用場(chǎng)景簡(jiǎn)析
ES安裝,部署及架構(gòu)解析
ES日常運(yùn)維管理
第三部分 NewSQL(4天)
NewSQL-TiDB(僅學(xué)此一個(gè)+MySQL至少20K起步) TUG核心成員-PingCAP官方認(rèn)證講師 **獨(dú)家**
TiDB產(chǎn)品介紹與分布式數(shù)據(jù)庫(kù)技術(shù)應(yīng)用講解
TiDB集群部署與日常管理
TiDB集群監(jiān)控詳解與指標(biāo)應(yīng)用
TiDB核心架構(gòu)深入講解與Raft協(xié)議深入淺出**獨(dú)家*
企業(yè)級(jí)TiDB-DM理解與應(yīng)用**獨(dú)家*
1.????? 58同城億級(jí)流量Mysql熱遷移TiDB**獨(dú)家**
2.????? DM集群多源同步復(fù)制場(chǎng)景最佳實(shí)踐(官方認(rèn)證,業(yè)界唯二)**獨(dú)家**
TiDB企業(yè)級(jí)業(yè)務(wù)開(kāi)發(fā)最佳實(shí)踐**獨(dú)家**
TiFllash核心架構(gòu)講解與實(shí)戰(zhàn)**獨(dú)家**
TiDB打造HTAP實(shí)時(shí)數(shù)倉(cāng)平臺(tái)架構(gòu)設(shè)計(jì)**獨(dú)家**
Cloud TiDB(K8S上云實(shí)戰(zhàn))**獨(dú)家**
TiDB4.0熱升級(jí)5.0集群(簡(jiǎn)介:我司與Pingcap官方{開(kāi)發(fā)30人,交付專(zhuān)家7人,項(xiàng)目經(jīng)理4人}封閉測(cè)試與在線(xiàn)升級(jí)全案例解析6.23日項(xiàng)目完結(jié),官方認(rèn)證業(yè)界目前第一的業(yè)務(wù)場(chǎng)景與投入)
NewSQL-TDengine(1天 選修)
TDengine產(chǎn)品介紹
TDengine單機(jī)版與集群部署與管理
TDengine架構(gòu)體系詳解
TDengine企業(yè)級(jí)參數(shù)優(yōu)化與實(shí)戰(zhàn)
TDengine業(yè)務(wù)開(kāi)發(fā)規(guī)范與業(yè)務(wù)場(chǎng)景實(shí)戰(zhàn)
第四部分 企業(yè)級(jí)大規(guī)模數(shù)據(jù)庫(kù)集群運(yùn)維開(kāi)發(fā)實(shí)戰(zhàn)(35W+年薪提升)**獨(dú)家**
數(shù)據(jù)運(yùn)維產(chǎn)品架構(gòu)設(shè)計(jì)思路(0.5天)
什么是數(shù)據(jù)運(yùn)維平臺(tái)
企業(yè)級(jí)數(shù)據(jù)運(yùn)維平臺(tái)架構(gòu)解析
數(shù)據(jù)運(yùn)維平臺(tái)企業(yè)級(jí)原型設(shè)計(jì)實(shí)戰(zhàn)(0.5天)
數(shù)據(jù)庫(kù)運(yùn)維自動(dòng)化工具開(kāi)發(fā)(Shell,Python)(2天5選2,下期輪換)
MySQL億萬(wàn)級(jí)流量運(yùn)維平臺(tái)開(kāi)發(fā)
Redis億萬(wàn)級(jí)流量運(yùn)維平臺(tái)開(kāi)發(fā)
ES億萬(wàn)級(jí)流量運(yùn)維平臺(tái)開(kāi)發(fā)
MongoDB億萬(wàn)級(jí)流量運(yùn)維平臺(tái)開(kāi)發(fā)
TiDB億萬(wàn)級(jí)流量運(yùn)維平臺(tái)開(kāi)發(fā)
多種方案,含zookeeper方案 : PostgreSQL 流行 HA 方案
有實(shí)例 有講解! postgresql 高可用集群搭建 : PostgreSQL_HA_with_primary_standby_2vip
pgpool+Keepalived 實(shí)現(xiàn)postgresql 高可用集群: PostgreSQL+pgpooll+Keepalived雙機(jī)HA方案
利用pgpool 實(shí)現(xiàn)postgresql 高可用集群 : POSTGRESQL主備部署模式
看起來(lái)不錯(cuò) : 雙機(jī)熱備技術(shù):使用pgpool搭建高可用PostgreSQL HA的步驟
PostgreSQL 流復(fù)制 + Pgpool-II 實(shí)現(xiàn)高可用 HA
推薦使用pgpool原因: PostgreSQL的集群技術(shù)比較
很好的要看corosync+pacemaker: 基于Pacemaker的PostgreSQL一主多從讀負(fù)載均衡集群搭
可能復(fù)雜 : Pacemaker+corosync搭建PostgreSQL共享存儲(chǔ)HA
corosync+pacemaker 有實(shí)例 : postgresql雙機(jī)熱備、高可用方案(采用pacemaker+corosync實(shí)現(xiàn))
需求講得好 : PostgresSQL HA高可用架構(gòu)實(shí)戰(zhàn)
PostgresSQL HA高可用架構(gòu)實(shí)戰(zhàn)
流復(fù)制HA(pgpool) :較簡(jiǎn)單、易實(shí)現(xiàn)
共享存儲(chǔ)HA(corosync+pacemaker):功能完備、學(xué)習(xí)成本高、復(fù)雜
HelloGitHub 分享 GitHub 上有趣、入門(mén)級(jí)的開(kāi)源項(xiàng)目。
這里有實(shí)戰(zhàn)項(xiàng)目、入門(mén)教程、黑 科技 、開(kāi)源書(shū)籍、大廠開(kāi)源項(xiàng)目等,涵蓋多種編程語(yǔ)言 Python、Java、Go、C/C++、Swift...讓你在短時(shí)間內(nèi)感受到開(kāi)源的魅力,對(duì)編程產(chǎn)生興趣!
1、 toybox :該項(xiàng)目將 200 多個(gè)常用的 Linux 命令行工具,做成一個(gè)可執(zhí)行文件。從而可以讓 Android 這種原本不支持 Linux 命令的系統(tǒng),也得以用上 ls、find、ps 等命令。還可以用于快速構(gòu)建最小的 Linux 環(huán)境
2、 the_silver_searcher :比 ack 更快的命令行搜索工具。速度快、功能強(qiáng)大、使用簡(jiǎn)單,支持 Linux、Windows、macOS 操作系統(tǒng),還能夠整合進(jìn) Vim 和 Emacs 等編輯器
3、 WindTerm :支持 SSH/Telnet/Serial/Shell/Sftp 的終端工具。雖然該軟件完全免費(fèi),但部分代碼尚未完全開(kāi)源,對(duì)安全敏感的同學(xué)可以再觀望下
4、 wavefunctioncollapse :基于波函數(shù)坍縮 (WFC) 算法,實(shí)現(xiàn)的無(wú)限城市示例。城市里有房子、樓梯、樹(shù)木、連接房屋的通道,你可以在城市中自由移動(dòng)、跳躍、飛行,但不論你怎么移動(dòng)都找不到盡頭,因?yàn)檫@座城市會(huì)無(wú)限延伸
5、 NETworkManager :管理和解決網(wǎng)絡(luò)問(wèn)題的工具。它集成了 IP 和端口掃描、WiFi 分析器、跟蹤路由、DNS 查詢(xún)等工具
6、 ppsspp :能夠運(yùn)行在 Android 和 PC 上的開(kāi)源 PSP 模擬器
7、 leocad :用來(lái)創(chuàng)建虛擬樂(lè)高模型的 CAD 工具。適用于 Windows、Linux 和 macOS 系統(tǒng)
8、 csshake :用 CSS 實(shí)現(xiàn)抖動(dòng)效果
9、 MangoDB :真正開(kāi)源的 MongoDB 替代品。它底層采用 PostgreSQL 作為存儲(chǔ)引擎,用 Go 語(yǔ)言實(shí)現(xiàn)了 MongoDB 協(xié)議,所以幾乎兼容所有的 MongoDB 庫(kù),遷移起來(lái)毫無(wú)負(fù)擔(dān)。如果你用不到 MongoDB 的高級(jí)功能,還受限于它的開(kāi)源協(xié)議,那么這個(gè)項(xiàng)目可作為 MongoDB 的開(kāi)源替代方案。它才剛剛起步,建議觀望一段時(shí)間或做足測(cè)試再用于生產(chǎn)環(huán)境
10、 caddy :用 Go 編寫(xiě)的輕量級(jí) Web 服務(wù)器。它相較于 Apache、Nginx 這些知名 Web 服務(wù)器,獨(dú)特點(diǎn)在于提供了編譯好的可執(zhí)行文件,實(shí)現(xiàn)了真正的開(kāi)箱即用。無(wú)需任何配置即可擁有免費(fèi)的 HTTPS、自動(dòng)把 Markdown 文件轉(zhuǎn)化成 HTML 等人性化的功能。如果是搭建中小型的 Web 服務(wù),它完全夠用而且省時(shí)省心
11、 croc :可以讓任意兩臺(tái)計(jì)算機(jī),安全方便地傳輸文件和文件夾的工具。輕松實(shí)現(xiàn)端到端加密的跨平臺(tái)文件傳輸,還支持多文件傳輸、傳輸中斷和恢復(fù)等功能
12、 jnativehook :獲取鍵盤(pán)和鼠標(biāo)事件的 Java 庫(kù)。輕松監(jiān)聽(tīng)按鍵、鼠標(biāo)移動(dòng)、點(diǎn)擊等事件
13、 spider-flow :用流程圖的方式編寫(xiě)爬蟲(chóng)的平臺(tái)。無(wú)需寫(xiě)代碼就可以快速完成一個(gè)簡(jiǎn)單的爬蟲(chóng)
14、 greenDAO :高性能的 Android ORM 庫(kù)。擁有體積小、易于使用、支持?jǐn)?shù)據(jù)庫(kù)加密等特點(diǎn),通過(guò)它 Android 開(kāi)發(fā)者可以采用面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫(kù),不需要再手寫(xiě)和拼接 SQL 啦
15、 vue-color-avatar :純前端實(shí)現(xiàn)的矢量風(fēng)格頭像生成網(wǎng)站。可以通過(guò)搭配不同的素材,生成個(gè)性化頭像。該項(xiàng)目使用 Vite + Vue3 開(kāi)發(fā),能夠幫助前端初學(xué)者熟悉 Vue3 語(yǔ)法并掌握項(xiàng)目搭建的相關(guān)知識(shí)
16、 colorfu :自動(dòng)生成由文字/顏色/圖片/紋理元素組成的壁紙
17、 pm2 :Node.js 的進(jìn)程管理工具。它容易上手操作簡(jiǎn)單,可以有效地提高 Node.js 程序運(yùn)行的穩(wěn)定性,支持自動(dòng)重啟、負(fù)載均衡、不停服務(wù)重啟、性能監(jiān)控等功能,多用于生產(chǎn)環(huán)境中管理、監(jiān)控 Node.js 進(jìn)程
18、 automa :通過(guò)圖形化界面拖拽功能模塊,實(shí)現(xiàn)瀏覽器自動(dòng)操作的擴(kuò)展工具。輕松實(shí)現(xiàn)自動(dòng)填表、截圖、定時(shí)執(zhí)行等操作。讓瀏覽器自動(dòng)完成預(yù)設(shè)工作流的插件,從而減少重復(fù)性操作提高效率
19、 PyWebIO :快速構(gòu)建 Web 應(yīng)用的 Python 工具。通過(guò)該項(xiàng)目你可在不寫(xiě) HTML、CSS、JS 代碼的前提下,僅用 Python 快速完成一個(gè)包含數(shù)據(jù)展示、表單的小型 Web 應(yīng)用頁(yè)面
20、 pottery :以 Python 的方式操作 Redis 的庫(kù)。忘記那些 Redis 命令吧,只要你知道如何使用 Python 字典,那么你就會(huì)用這個(gè)庫(kù)操作 Redis
21、 zulip :完全開(kāi)源的企業(yè)級(jí)即時(shí)通訊項(xiàng)目。后端采用 Python 語(yǔ)言實(shí)現(xiàn)性能足夠強(qiáng)大,功能齊全相當(dāng)于開(kāi)源、免費(fèi)的 Slack,擁有拖拽上傳文件、代碼高亮、Markdown 語(yǔ)法、應(yīng)用整合、容易接入的 API 等功能,還支持 Web、PC、iOS 和 Android 主流平臺(tái),眾多知名企業(yè)都在用,能夠有效地提高團(tuán)隊(duì)溝通和辦公效率。同時(shí)該項(xiàng)目對(duì)新手用戶(hù)友好,如果你想加入一個(gè)不錯(cuò)的 Python 開(kāi)源項(xiàng)目,推薦你花時(shí)間研究下它一定會(huì)有所收獲
22、 webssh :簡(jiǎn)單的 SSH 連接服務(wù)器的 Python Web 應(yīng)用。該項(xiàng)目后端采用 Tornado Web 框架和 Python SSH 庫(kù) paramiko,前端是 TypeScript 寫(xiě)的命令行前端組件 Xterm.js 實(shí)現(xiàn)。整個(gè)項(xiàng)目簡(jiǎn)單還具有實(shí)用價(jià)值,可作為 Python Web 的實(shí)戰(zhàn)項(xiàng)目學(xué)習(xí)
23、 django-debug-toolbar :Django 的調(diào)試工具欄??娠@示當(dāng)前請(qǐng)求和響應(yīng)有關(guān)的各種調(diào)試信息,包括耗時(shí)、SQL、配置、性能等信息
24、 hyperfine :命令行基準(zhǔn)測(cè)試工具。可用來(lái)查看和對(duì)比命令的耗時(shí),支持多次運(yùn)行的統(tǒng)計(jì)分析、結(jié)果導(dǎo)出等功能
25、 xcode-dev-cleaner :用于清理各種 Xcode 的緩存數(shù)據(jù),釋放存儲(chǔ)空間。注意是清除 Xcode 緩存數(shù)據(jù),不是卸載 Xcode 哈
26、 toml :更易讀和易于維護(hù)的配置文件格式。如果你厭倦了 INI 的局限性、層層嵌套的 JSON 和 YAML 令人心驚膽戰(zhàn)的縮進(jìn)語(yǔ)法,不防給 TOML 一個(gè)機(jī)會(huì),它支持多種數(shù)據(jù)類(lèi)型、拋棄了縮進(jìn)和嵌套,而且眾多流行編程語(yǔ)言都有對(duì)應(yīng)的庫(kù)。TOML 已經(jīng)足夠成熟,絕對(duì)值得一試
27、 waka-readme-stats :自動(dòng)在 GitHub 個(gè)人首頁(yè)展示編程時(shí)長(zhǎng)的工具。該項(xiàng)目通過(guò) WakaTime 記錄用戶(hù)在 IDE 的使用時(shí)間,統(tǒng)計(jì)編程時(shí)長(zhǎng)和數(shù)據(jù),然后采用 GitHub Action 自動(dòng)獲取并動(dòng)態(tài)更新到 GitHub 個(gè)人首頁(yè)。輕而易舉地展示自己的編程時(shí)長(zhǎng)
28、 PathPlanning :常見(jiàn)的路徑規(guī)劃算法集合。項(xiàng)目包含了 Python 代碼實(shí)現(xiàn)、運(yùn)行過(guò)程動(dòng)畫(huà)以及相關(guān)論文
29、 howdy :為 Linux 系統(tǒng)提供人臉識(shí)別解鎖電腦的工具。通過(guò)電腦內(nèi)置的攝像頭和紅外設(shè)備,實(shí)現(xiàn)了類(lèi)似 Windows Hello 風(fēng)格的身份認(rèn)證,可用于登陸、鎖屏、sudo 等任何需要輸入密碼的地方
30、 The-Open-Book :開(kāi)源的電子水墨屏閱讀設(shè)備。動(dòng)手能力強(qiáng)的同學(xué)可跟著這個(gè)項(xiàng)目,從焊電路板開(kāi)始親手制作出一個(gè)類(lèi) Kindle 的 4.2 英寸閱讀設(shè)備
31、 fl_chart :Flutter 圖表庫(kù)。它支持折線(xiàn)圖、條形圖、餅圖、散點(diǎn)圖和雷達(dá)圖
32、 ugo-compiler-book :《從頭開(kāi)發(fā)一個(gè)迷你 Go 語(yǔ)言》該書(shū)教你從頭實(shí)現(xiàn)迷你 Go 語(yǔ)言,內(nèi)容包含了詞法解析、語(yǔ)法樹(shù)構(gòu)建、函數(shù)閉包、接口、CGO 的實(shí)現(xiàn)等內(nèi)容
33、 archbase :教科書(shū)《計(jì)算機(jī)體系結(jié)構(gòu)基礎(chǔ)》第三版
34、 spring-in-action-v6-translate :《Spring 實(shí)戰(zhàn)第 6 版》中文翻譯
35、 best_AI_papers_2021 :2021 年必看的人工智能論文列表。該項(xiàng)目不是簡(jiǎn)單的羅列論文,它不僅包含相關(guān)論文的代碼、效果展示,還有深入的文章和講解視頻。通過(guò)學(xué)習(xí)這些前沿的人工智能論文,提前了解 AI 在未來(lái)更多可能性
36、 AnimeGANv2 :可以將圖片和視頻轉(zhuǎn)換成漫畫(huà)風(fēng)格的工具。采用的是神經(jīng)風(fēng)格遷移+生成對(duì)抗網(wǎng)絡(luò)(GAN)的組合,轉(zhuǎn)換速度快
感謝您的閱讀,如果覺(jué)得內(nèi)容還不錯(cuò)的話(huà) 求贊、求分享 ,您的每一次支持都將讓 HelloGitHub 變得更好!
CloudCanal 2.1.0.x 版本開(kāi)始支持 StarRocks 作為對(duì)端的數(shù)據(jù)遷移同步能力
本文通過(guò) MySQL-StarRocks 的數(shù)據(jù)遷移同步案例簡(jiǎn)要介紹這個(gè)源端的能力。鏈路特點(diǎn):
StarRocks 提供了多種導(dǎo)入方式。CloudCanal 采用了 StreamLoad 的方式進(jìn)行導(dǎo)入,源端的消息會(huì)轉(zhuǎn)成字節(jié)流,通過(guò) HTTP 協(xié)議發(fā)往 StarRocks。
相比直接通過(guò) SQL 寫(xiě)入的方式,StreamLoad 方式會(huì)有更好的性能,寫(xiě)入的數(shù)據(jù)直接經(jīng) FE 轉(zhuǎn)發(fā)給 BE 處理。如果直接采用 SQL 寫(xiě)入,在 FE 側(cè),會(huì)有額外的 SQL 解析開(kāi)銷(xiāo)。
CloudCanal 提供了 StreamLoad 可配置的豐富參數(shù),包括:
過(guò)快的寫(xiě)入會(huì)導(dǎo)致 StarRocks 來(lái)不及 compaction,從而產(chǎn)生異常。CloudCanal 提供了兩個(gè)任務(wù)參數(shù),支持在一批數(shù)據(jù)寫(xiě)入后自動(dòng)停頓一段時(shí)間,避免這種問(wèn)題。參數(shù)為:
CloudCanal 任務(wù)詳情頁(yè),點(diǎn)擊 參數(shù)修改 ,即可調(diào)整
StarRocks 作為實(shí)時(shí)數(shù)倉(cāng),采用 主鍵模型 或者 聚合模型 較多。CloudCanal默認(rèn)采用 主鍵模型 ,能夠?qū)崟r(shí)同步源端的 INSERT / UPDATE / DELETE 。
基于 StreamLoad 的寫(xiě)入方式,實(shí)際寫(xiě)入對(duì)端的操作均為 INSERT。CloudCanal 同步時(shí)會(huì)自動(dòng)將 UPDATE/DELETE 轉(zhuǎn)成INSERT語(yǔ)句,并修改 __ops 值,StarRocks 會(huì)自動(dòng)進(jìn)行compaction。
StarRocks 不支持 \n 等特殊符號(hào)寫(xiě)入,CloudCanal 任務(wù)通過(guò)參數(shù)設(shè)置( enableEscape 參數(shù)) 開(kāi)啟自動(dòng)轉(zhuǎn)義。
對(duì)于高流量的場(chǎng)景,建議使用 4G 及以上的任務(wù)規(guī)格配置,并且對(duì)相關(guān)參數(shù)進(jìn)行調(diào)優(yōu),調(diào)優(yōu)建立在任務(wù)無(wú) GC 問(wèn)題、對(duì)端 StarRocks 沒(méi)有 compaction 瓶頸的情況下。
本文簡(jiǎn)單介紹了如何使用 CloudCanal 進(jìn)行MySQL到StarRocks 的數(shù)據(jù)遷移同步。各位讀者朋友,如果你覺(jué)得還不錯(cuò),請(qǐng)點(diǎn)贊、評(píng)論加轉(zhuǎn)發(fā)吧。
默認(rèn)任務(wù)參數(shù)配置下,如果導(dǎo)入數(shù)據(jù)過(guò)于頻繁可能會(huì)任務(wù)異常,這時(shí)候可以調(diào)節(jié)上文提到的fullBatchWaitTimeMs和increBatchWaitTimeMs參數(shù)或者調(diào)整StarRocks的Server側(cè)的合并策略。下圖為StarRocks官方提供的常見(jiàn)問(wèn)題FAQ
CloudCanal-免費(fèi)好用的企業(yè)級(jí)數(shù)據(jù)同步工具,歡迎品鑒。
了解更多產(chǎn)品可以查看 官方網(wǎng)站 :
CloudCanal社區(qū) :
在Airwallex,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)方法被用來(lái)指導(dǎo)我們的工程師如何對(duì)復(fù)雜的業(yè)務(wù)問(wèn)題和系統(tǒng)設(shè)計(jì)建模。在這篇博客中,我們提供了一個(gè)全面的工作流,我們使用DDD模式進(jìn)行建模,然后對(duì)支付系統(tǒng)進(jìn)行落地。
全球支付系統(tǒng)是復(fù)雜和不斷變化的,涉及從訂單、欺詐、通知、與各種支付方式的集成到清算和結(jié)算等廣泛的板塊。
在處理復(fù)雜的系統(tǒng)時(shí),大多數(shù)開(kāi)發(fā)人員可能會(huì)遇到一些一致的問(wèn)題:
在Airwallex,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)方法被用來(lái)指導(dǎo)我們的工程師如何解決復(fù)雜的業(yè)務(wù)問(wèn)題和系統(tǒng)建模。
然而,DDD只是各種模式的集合,很難將其應(yīng)用于系統(tǒng)設(shè)計(jì)。在這篇博客中,我們提供了一個(gè)全面的工作流程,介紹了我們是如何在Airwallex應(yīng)用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的,從中得到的經(jīng)驗(yàn)教訓(xùn),以及我們接下來(lái)要做什么。
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(由Eric Evans提出)是一組幫助基于業(yè)務(wù)領(lǐng)域的底層模型設(shè)計(jì)軟件系統(tǒng)的思想、原則和模式。DDD有兩個(gè)不同的空間,問(wèn)題空間和解決方案空間。
在問(wèn)題空間中,您使用戰(zhàn)略模式定義系統(tǒng)的頂層的系統(tǒng)層次,這些戰(zhàn)略模式關(guān)注域、子域和通用語(yǔ)言的分析。
在解決方案空間中,采用戰(zhàn)術(shù)模式來(lái)提供一組設(shè)計(jì)模式,您可以使用這些設(shè)計(jì)模式創(chuàng)建領(lǐng)域模型。這些模式包括有界上下文、上下文映射、實(shí)體、聚合、領(lǐng)域事件、領(lǐng)域服務(wù)、應(yīng)用程序服務(wù)和基礎(chǔ)設(shè)施。這些戰(zhàn)術(shù)模式將幫助您設(shè)計(jì)既松散耦合又具有內(nèi)聚性的微服務(wù)。
下面是一個(gè)常見(jiàn)的案例:
一位顧客想在該商家的網(wǎng)站上購(gòu)買(mǎi)一件價(jià)格為10美元的t恤。顧客可以用多種支付方式來(lái)支付這件t恤,比如Visa卡或微信錢(qián)包。在客戶(hù)支付后,商家會(huì)從支付網(wǎng)關(guān)收到一個(gè)通知,顯示客戶(hù)的支付已經(jīng)成功。然后,商家可以在Airwallex webapp中查看支付細(xì)節(jié),包括購(gòu)買(mǎi)價(jià)格、商家費(fèi)用以及資金將何時(shí)進(jìn)入Airwallex Global Account錢(qián)包。
下面是分析結(jié)果。
支付系統(tǒng)
付款處理:商家可以通過(guò)各種付款方式接受客戶(hù)的付款。
金融:清算和解決商家的付款資金。
付款意向:商家創(chuàng)建的訂單的價(jià)格,產(chǎn)品,客戶(hù)等。
付款嘗試:商家創(chuàng)建的交易以獲得訂單的客戶(hù)。
付款方式:客戶(hù)支付產(chǎn)品的方式。
付款結(jié)算:付款之 后錢(qián)進(jìn)入商家錢(qián)包。
付款視圖:匯總付款詳細(xì)信息視圖,包含與一筆付款相關(guān)的所有數(shù)據(jù)。
有界上下文(BC)限定了域模型的范圍。根據(jù)對(duì)問(wèn)題空間的分析結(jié)果,我們可以定義以下邊界上下文:
支付網(wǎng)關(guān): API網(wǎng)關(guān),為商家提供restful API來(lái)創(chuàng)建或查看支付。
支付核心模塊: 支付意圖,方法資源管理。
支付適配器: 與一個(gè)外部的PSP集成,例如微信,支付寶,Visa,萬(wàn)事達(dá)等。
支付結(jié)算: 計(jì)算并結(jié)算商戶(hù)每次支付的原則和費(fèi)用。支付融合:支付明細(xì)匯總視圖。
下面是生成的上下文映射的一個(gè)示例:
從上面分析的場(chǎng)景和通用語(yǔ)言中,我們可以確定以下聚合、實(shí)體、值對(duì)象和域事件:
根據(jù)我們的經(jīng)驗(yàn),領(lǐng)域服務(wù)為單個(gè)聚合使用業(yè)務(wù)邏輯服務(wù),遵循單一責(zé)任。通常,我們將封裝領(lǐng)域倉(cāng)儲(chǔ)、聚合修改和在領(lǐng)域服務(wù)中發(fā)布的領(lǐng)域事件。以PaymentAttemptExecutorService為例:
領(lǐng)域事件可以使系統(tǒng)更具有可擴(kuò)展性,并避免任何耦合,且一個(gè)聚合不應(yīng)該決定其他聚合應(yīng)該做什么。
例如,當(dāng)PaymentCaptureCommand命令將支付狀態(tài)更改為已支付時(shí),會(huì)發(fā)出領(lǐng)域事件PaymentAttemptCapturedEvent。在PaymentAttemptCapturedEvent的領(lǐng)域事件處理程序(EventHandler)中,我們可以在該業(yè)務(wù)邏輯上加上你想要的邏輯。例如,通知支付聚合有界上下文更新支付詳情,通知支付結(jié)算有界上下文計(jì)算結(jié)算金額和費(fèi)用。
在DDD模式中,基礎(chǔ)設(shè)施層作用于將核心業(yè)務(wù)領(lǐng)域與技術(shù)實(shí)現(xiàn)細(xì)節(jié)分開(kāi)。該層通常采用ACL (anti - corruption-layer)模式。以領(lǐng)域倉(cāng)儲(chǔ)為例:
領(lǐng)域倉(cāng)儲(chǔ)只定義接口功能,但實(shí)現(xiàn)細(xì)節(jié)應(yīng)該隱藏在基礎(chǔ)設(shè)施層中,細(xì)節(jié)上你可以使用PostgreSQL或MongoDB來(lái)保存數(shù)據(jù)。例如,在基礎(chǔ)設(shè)施層中,PaymentAttemptPgRepository是基于PostgreSQL的特定實(shí)現(xiàn),而toPO是一個(gè)轉(zhuǎn)換器,用于將域?qū)ο驪aymentAttempt轉(zhuǎn)換為持久化對(duì)象。
現(xiàn)在,我們已經(jīng)為支付系統(tǒng)定義了一組有界上下文,并在每個(gè)有界上下文中標(biāo)識(shí)了一組實(shí)體、聚合和領(lǐng)域事件服務(wù)。下一步是從域模型到應(yīng)用程序微服務(wù)設(shè)計(jì)。這里,我們選擇將一個(gè)有邊界的上下文映射到一個(gè)微服務(wù)。
采用DDD可以提供許多好處,例如,在所有團(tuán)隊(duì)之間進(jìn)行清晰的溝通,以及在設(shè)計(jì)系統(tǒng)時(shí)使用成熟的模式來(lái)管理復(fù)雜性并提供更好的可伸縮性。
使用通用語(yǔ)言,我們可以實(shí)現(xiàn)更多的自描述類(lèi)名和函數(shù)名。
使用聚合模式,我們可以實(shí)現(xiàn)清晰的邊界和單一的職責(zé)。
使用領(lǐng)域事件模式,我們可以分割核心業(yè)務(wù)流程,減少聚合之間的耦合。
通過(guò)基礎(chǔ)設(shè)施層和ACL模式,我們可以將核心業(yè)務(wù)領(lǐng)域模型與技術(shù)實(shí)現(xiàn)細(xì)節(jié)分離開(kāi)來(lái)。通過(guò)限定上下文模式,我們可以派生出潛在的微服務(wù)候選對(duì)象。
在實(shí)踐中應(yīng)用DDD時(shí),我們想要分享一些挑戰(zhàn)和經(jīng)驗(yàn)教訓(xùn):
原文地址:
最近論壇上看到好幾個(gè)朋友都在問(wèn),如何學(xué)習(xí) Java的問(wèn)題,“我已經(jīng)學(xué)習(xí)了J2SE,怎么樣才能轉(zhuǎn)向J2EE?”,“我看完了Thinking in Java, 可以學(xué)習(xí)J2EE了么?”。于是就有了寫(xiě)這篇文章的想法,希望能幫助初學(xué)者少走一些彎路。也算是對(duì)自己幾年來(lái)學(xué)習(xí)Java的一個(gè)總結(jié)吧。
在開(kāi)始之前有必要再討論一下J2ME,J2SE,J2EE這些概念。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手機(jī),PDA等等。J2SE,Java 2 Platform,Standard Edition,我們通常所說(shuō)的JDK(Java Development Kit)包含在此,是J2EE的基礎(chǔ)。J2EE,Java 2 Platform,Enterprise Edition,就是所謂的企業(yè)級(jí)Java。這些只是從API級(jí)別上的劃分,實(shí)際上Sun給J2EE的定義是:開(kāi)發(fā)基于組件的多層的企業(yè)級(jí)應(yīng)用的規(guī)范。也就是為各種不同的技術(shù)定義一個(gè)Java的規(guī)范,使這些不同的技術(shù)結(jié)合起來(lái),在Java平臺(tái)上構(gòu)建強(qiáng)壯的企業(yè)級(jí)應(yīng)用。從這一點(diǎn)來(lái)看,J2EE這個(gè)概念應(yīng)該是涵蓋J2ME,J2SE的。比如一個(gè)典型的J2EE應(yīng)用,網(wǎng)上商店,它支持web方式下訂單,也支持手機(jī)下訂單。顯然必須用到J2SE,J2ME。所以也就不存在所謂的從J2SE轉(zhuǎn)向J2EE的問(wèn)題了,只是后者包含的范圍更廣而已。
來(lái)看看Sun給出的J2EE 相關(guān)技術(shù)主要分為幾大塊。
1. Web Service技術(shù)
- Java API for XML Processing (JAXP)
- Java API for XML Registries (JAXR)
- Java API for XML-based RPC (JAX-RPC)
- SOAP with Attachments API for Java (SAAJ)
2. 組件模型技術(shù)(Component Model Technologies)
- Java Servlet
- JavaServer Pages
- JavaServer Faces
- Enterprise JavaBeans
- Java Message Service
- J2EE Connector Architecture
3. 管理技術(shù)(Management Technologies)
- J2EE Deployment Specification
- J2EE Management Specification
- J2EE Client Provisioning
- Java Authorization Contract for Containers
4. 其他相關(guān)技術(shù)(Other J2EE Technologies)
- JDBC
- Java Data Objects (JDO)
- CORBA (Java IDL and Java RMI-IIOP)
- JavaMail
- Transactions
如此之多的技術(shù)難免使初學(xué)者無(wú)所適從,望而卻步。即使是一位經(jīng)驗(yàn)豐富的J2EE開(kāi)發(fā)者,又有幾個(gè)人敢說(shuō)J2EE相關(guān)的技術(shù)我都熟練掌握了。不過(guò)作為一名普通J2EE應(yīng)用程序的開(kāi)發(fā)者來(lái)說(shuō),我們只需要重點(diǎn)學(xué)習(xí)其中的一部分技術(shù)就可以了,對(duì)于其他部分只要做到心中有數(shù),哪天需要用到了知道跑哪里去找到資料就行了。以我個(gè)人的觀點(diǎn),下面這些技術(shù)是一般J2EE應(yīng)用開(kāi)發(fā)人員所必須熟練掌握的。Java Server Page,Java Servlet,Enterprise JavaBean,JDBC,Transactions。還有JAXP等XML相關(guān)技術(shù),Java Message Service,Java Mail,JDO等等是最好應(yīng)該掌握的。其他Management Technologies,Connector Architecture等等主要是給容器提供商中間件提供商參考的,應(yīng)用開(kāi)發(fā)者不需要怎么關(guān)心,等用到了再去學(xué)習(xí)也不遲。
語(yǔ)言學(xué)習(xí)篇
首先是J2SE基礎(chǔ)。學(xué)習(xí)一門(mén)新技術(shù),無(wú)外乎閱讀和實(shí)踐了。而一本好的參考書(shū)對(duì)于初學(xué)者來(lái)說(shuō)顯得格外重要?,F(xiàn)在市面上的 Java書(shū)籍可以說(shuō)是鋪天蓋地,質(zhì)量也是良莠不齊,令初學(xué)者無(wú)所適從。所以還是先推薦幾本書(shū)籍吧。目前對(duì)于Java基礎(chǔ)知識(shí),大家一般都比較推薦兩本書(shū)和 Core Java? 2, Volume I: Fundamentals 。第一本書(shū)不必多說(shuō)了,Bruce Eckel的大作,Jolt獲獎(jiǎng)書(shū)籍。內(nèi)容比較全面,基本涵蓋了java語(yǔ)言的方方面面。這本書(shū)提供了相當(dāng)豐富的例子,非常有利于對(duì)學(xué)習(xí)內(nèi)容的了解。另外書(shū)中第一部分對(duì)于OO基本書(shū)籍的介紹,我覺(jué)得對(duì)于剛接觸OO的人來(lái)說(shuō)幫助會(huì)很大。而且此書(shū)是Open Source的,可以從作者網(wǎng)上下載而對(duì)于習(xí)慣于讀中文版的學(xué)習(xí)者來(lái)說(shuō),侯捷翻譯的中文版是不錯(cuò)的選擇。要說(shuō)這本說(shuō)的缺點(diǎn)可能就是對(duì)于初學(xué)者來(lái)說(shuō)厚了一點(diǎn),這也是一些人并不推薦此書(shū)作為初學(xué)者學(xué)習(xí)用書(shū)的原因吧。后面一本 Core Java? 2, Volume I: Fundamentals 。目前已經(jīng)是第七版了,單從它出版的次數(shù)來(lái)看也可以看出此書(shū)受歡迎的程度,這本書(shū)特點(diǎn)也是講述比較全面系統(tǒng),基本上一路啃下來(lái)的話(huà)Java語(yǔ)言基礎(chǔ)應(yīng)該算過(guò)關(guān)了。缺點(diǎn)也是太厚了,有點(diǎn)像參考手冊(cè),前面部分花了不少篇幅講Swing和Applet,可能對(duì)初學(xué)者不是很有用。還有一些像 Java in a nutshell也是比較不錯(cuò)的基礎(chǔ)書(shū)籍。
學(xué)習(xí)了基本的語(yǔ)言基礎(chǔ),別忘了最重要也是最有用的資料還是JDK文檔。從你學(xué)習(xí)java的第一天開(kāi)始JDK文檔應(yīng)該是常備手頭了。如果你碰到問(wèn)題首先想到的是到論壇上去提問(wèn)而不是查閱Jdk文檔,那先別繼續(xù)往下學(xué)習(xí)了,學(xué)會(huì)查JDK文檔先。不夸張的說(shuō)在我們的初學(xué)者論壇中60%的問(wèn)題是光查一下JDK文檔就能解決問(wèn)題的。最新JDK Documentation下載地址(目前最新版是J2SE5 )不能光說(shuō)不練,同一下載頁(yè)面把JDK給下載回來(lái)。安裝完后有一點(diǎn)我想提一下,安裝路徑下有一個(gè)src.zip(有些jdk版本是src.jar),好東西啊---JDK源代碼,老是有人在論壇上問(wèn)哪里有JDK源代碼下載,你說(shuō)東西就放在你家里還到處找。有了這個(gè)有些問(wèn)題就需要在論壇上跟人家爭(zhēng)來(lái)爭(zhēng)去了,翻開(kāi)源代碼瞧一下什么疑問(wèn)都沒(méi)有了。幾個(gè)最重要的命令行工具是
javac: 編譯源文件到class文件
java: 運(yùn)行class
jar: 打包工具。
javadoc: 生成java doc的工具。
對(duì)于初學(xué)java的人來(lái)說(shuō),我不推薦使用IDE而直接用文本編輯器,然后用命令行編譯運(yùn)行。這樣有利于理解CLASSPATH,PATH這些最基本概念。CLASSPATH是初學(xué)者比較容易感覺(jué)迷惑的地方?,F(xiàn)在的IDE太聰明了,給個(gè)名字就給你自動(dòng)生成java source code,自動(dòng)編譯??赡苣氵\(yùn)行完了你的第一個(gè)Hello World程序,還不知道java和javac是用來(lái)做什么的。至于實(shí)際的項(xiàng)目開(kāi)發(fā),一款合適的IDE還是十分重要的,我們稍后再對(duì)java開(kāi)發(fā)工具做一些介紹。
J2EE基礎(chǔ)和Java語(yǔ)言進(jìn)階
學(xué)習(xí)完語(yǔ)言基礎(chǔ),就可以比較自然地轉(zhuǎn)入J2EE實(shí)際技術(shù)的學(xué)習(xí)了。J2EE實(shí)在是比較龐雜,而EJB,Servlet,這些核心技術(shù)是作為每一個(gè)J2EE開(kāi)發(fā)人員所需要掌握的。關(guān)于servlet,我比較推薦和,第一本是Sun推薦的Servlet教材。第二本是當(dāng)年Amazon最暢銷(xiāo)Java書(shū)籍,五星級(jí)書(shū)籍。這本書(shū)機(jī)械工業(yè)出版社有中文版叫與JSP權(quán)威指南,感覺(jué)翻譯得還可以,第二版好像還沒(méi)有看到有中文版。兩本書(shū)都全面系統(tǒng)地介紹了JSP和Sevlet知識(shí),從web服務(wù)器配置,JSP,Servlet基本編程,標(biāo)記庫(kù)(Tag Lib),過(guò)濾器,事件框架都有很好地描述。提供地例子也比較實(shí)用。對(duì)于EJB學(xué)習(xí),比較著名有兩本書(shū), Enterprise JavaBeans, 3nd Edition和 Mastering Enterprise Java Beans Third Edition,兩位作者Richard Monson,Ed Roman都是屬于業(yè)界重量級(jí)人物。而Richard Monson本身就是EJB規(guī)范專(zhuān)家組成員。對(duì)我來(lái)說(shuō),兩本書(shū)難分優(yōu)劣,第二本書(shū)有個(gè)好處就是可以免費(fèi)下載。
還是那句話(huà),不能光說(shuō)不練,不過(guò)J2EE的練習(xí)做起來(lái)有一點(diǎn)麻煩,應(yīng)用服務(wù)器是不可少的,最好還得準(zhǔn)備個(gè)輕量級(jí)的數(shù)據(jù)庫(kù)。下面簡(jiǎn)單介紹一下這些工具。
web服務(wù)器(Servlet Container)方面有。
Tomcat:
Jetty:
應(yīng)用服務(wù)器常用的有,
Jboss:
Weblogic: ;FP=/content/products/server
WebSphere: ;S_CMP=DLMAIN。
Tomcat,Jetty,Jboss都是Open Source。Weblogic和WebSphere是J2EE服務(wù)器中的老大級(jí)人物,價(jià)格也不菲。不過(guò)對(duì)于開(kāi)發(fā)者有免費(fèi)的試用版下載。
如果單單只是學(xué)習(xí)Servlet,推薦使用Tomcat,它是Sun官方指定的Servlet,JSP規(guī)范的參考實(shí)現(xiàn)。對(duì)初學(xué)者最重要的是它使用比較簡(jiǎn)單,自帶文檔比較齊全,使用者眾多,有什么問(wèn)題容易在論壇上面得到幫助。如果學(xué)習(xí)EJB的話(huà),推薦使用Jboss,不僅僅是因?yàn)樗荗pen Source的,主要是配置比較簡(jiǎn)單,使用方便。比如說(shuō)對(duì)于連接數(shù)據(jù)庫(kù),對(duì)于常用的MySQL,Oracle,MS SQL等等都提供了Sample Config文件,直接拿過(guò)來(lái)做些小改動(dòng)扔到Deploy目錄下就可以用DataSource了,部署J2EE應(yīng)用也簡(jiǎn)單,把整個(gè).ear或者.war扔到deploy下就可以了。唯一不方便的地方是從Jboss3.0開(kāi)始,它的文檔開(kāi)始收費(fèi)了。但是對(duì)于一些基本的配置,在網(wǎng)上還是非常容易找到的,畢竟它太流行了。至于Weblogic,也比較容易使用,不過(guò)比起Jboss來(lái)個(gè)頭大了很多,通過(guò)強(qiáng)大的管理界面使得一些常用的配置工作變得十分簡(jiǎn)單。和Jboss比起來(lái)它的文檔就太多了,簡(jiǎn)直是有點(diǎn)羅里八嗦,比如要部署一個(gè).ear文件,一般我們也就是直接扔到domain下的applications目錄下就會(huì)自動(dòng)deploy了,但是要看它的文檔可是長(zhǎng)篇大論,容易嚇著初學(xué)者,以為這又是什么高深的學(xué)問(wèn)。至于WebSphere,個(gè)人不推薦初學(xué)者使用,相比前倆個(gè)Server比較難使,而且狂吃?xún)?nèi)存。不過(guò)在企業(yè)級(jí)市場(chǎng)這個(gè)家伙表現(xiàn)不俗,畢竟是出生于IBM這樣的豪門(mén)。
數(shù)據(jù)庫(kù)方面,目前常見(jiàn)的主要有PostgreSQL,MySQL,Oracle,MS SQL,DB2等等。前面兩個(gè)是開(kāi)源數(shù)據(jù)庫(kù),后面幾個(gè)基本上壟斷著大部分的數(shù)據(jù)庫(kù)市場(chǎng)。對(duì)于初學(xué)者用來(lái)做做EJB,JDBC的練習(xí),我推薦MySQL,理由還是很簡(jiǎn)單,開(kāi)源軟件不要錢(qián),個(gè)頭小使用方面,用戶(hù)眾多文檔齊全。下載地址。PostgreSQL也可以考慮,不過(guò)國(guó)內(nèi)使用者遠(yuǎn)不如MySQL多,所以要在論壇上問(wèn)起問(wèn)題來(lái)就少方便一些了,下載地址。至于后面那些比較重量級(jí)的數(shù)據(jù)庫(kù),為了做做練習(xí)而言就不用考慮了, 咱也花不起這個(gè)錢(qián)啊。
學(xué)習(xí)完J2EE的這些具體技術(shù),這個(gè)時(shí)候進(jìn)行基本的J2EE開(kāi)發(fā)應(yīng)該是不成問(wèn)題了。此時(shí)應(yīng)該考慮提高自己的代碼質(zhì)量了。這里我強(qiáng)烈推薦Martin Fowler的,這本書(shū)不是一本非常實(shí)際的書(shū),作者完全是手把手地教你如何提高代碼質(zhì)量,從具體地代碼中告訴你什么是代碼的Bad Smell,如何去掉這些Bad Smell。不少書(shū)評(píng)是這么說(shuō)的,這本書(shū)對(duì)于初級(jí),中級(jí)的讀者幫助是立桿見(jiàn)影的。至少就我接觸到的幾個(gè)學(xué)習(xí)編程不久的程序員,編碼質(zhì)量在短期內(nèi)都有很大提高。當(dāng)然重構(gòu)(Refactoring)這一概念并不只針對(duì)Java語(yǔ)言的,它對(duì)所有OO語(yǔ)言都是適用的。重構(gòu)的概念是如此深入人心,以至于今天幾乎所有流行的IDE工具都有對(duì)重構(gòu)的支持。這里我還想再推薦一本。從C++過(guò)來(lái)的程序員都知道在C++領(lǐng)域的地位,至今還流傳著這樣的趣話(huà),C++程序員分為兩種,一種是讀過(guò)的,另一種是沒(méi)有讀過(guò)C++的。雖然這本在Java領(lǐng)域的影響也許沒(méi)有那么大,但對(duì)于Java程序員絕對(duì)有相當(dāng)?shù)闹笇?dǎo)價(jià)值。作者是Sun公司的Joshua Bloch,java Collection framework的設(shè)計(jì)者。作者站在JDK設(shè)計(jì)者的角度向你介紹他的Best Practice,應(yīng)該這樣做而不應(yīng)該那樣做,對(duì)于JDK中某些API設(shè)計(jì)的缺陷他也毫不袒護(hù)的指出。Java語(yǔ)言之父James Gosling為此書(shū)寫(xiě)的前言是這么說(shuō)的“I sure wish I had had this book ten years ago。 Some might think that I don't need any Java books, but I need this one”。這本書(shū)會(huì)讓你覺(jué)得原來(lái)你對(duì)Java還是有很多東西不了解的。舉個(gè)例子來(lái)說(shuō),對(duì)象的equals方法,我們認(rèn)為它很簡(jiǎn)單,也許你每天都在為你新寫(xiě)的Class重載這個(gè)方法,但是你在重載的時(shí)候注意過(guò)“自反”,“對(duì)稱(chēng)”,“傳遞”這些必須要考慮的因素,你是否同時(shí)還小心謹(jǐn)慎的重載了hashcode這個(gè)方法?如果沒(méi)有,建議你要讀一下這本書(shū)。讀完這本書(shū),你會(huì)覺(jué)得離Java的距離更近了。上面兩本書(shū)都出過(guò)中文版,后面一本還有兩個(gè)版本的中文版,第一次翻譯的比較差一點(diǎn),后來(lái)機(jī)械工業(yè)出版社又委托潘愛(ài)民先生重新翻譯了一遍。同一本書(shū)在同一個(gè)出版社連續(xù)被翻譯了兩次也說(shuō)明國(guó)內(nèi)出版界對(duì)這本書(shū)還是比較重視的。
這個(gè)階段,在看書(shū)的同時(shí),可以結(jié)合著學(xué)習(xí)一些優(yōu)秀的開(kāi)源項(xiàng)目的源代碼。這些開(kāi)源項(xiàng)目的代碼風(fēng)格,注釋都是值得借鑒的。實(shí)在太懶也別忘了手頭上還有個(gè)Jdk的源代碼。其實(shí)也不用刻意去找源代碼,在實(shí)際的J2EE項(xiàng)目開(kāi)發(fā)中,基本上都會(huì)用到一些優(yōu)秀的開(kāi)源項(xiàng)目。Framework可能會(huì)用到Spring,Struts,Log機(jī)制基本上都會(huì)JarkartaCommons Log或者Log4j,單元測(cè)試會(huì)大多會(huì)用Junit,結(jié)合項(xiàng)目閱讀一下其中的一些源代碼,既可以提高自己又對(duì)項(xiàng)目會(huì)有所幫助,說(shuō)不定因此而得到PM的賞識(shí)呢。一舉兩得,何樂(lè)而不為呢。呵呵,有點(diǎn)扯遠(yuǎn)了。過(guò)了初學(xué)者階段,該學(xué)會(huì)如何找到適合自己的Java書(shū)籍了。歷經(jīng)數(shù)十載,今天的Java技術(shù)已經(jīng)變的如此之龐雜,我相信即使窮凈一個(gè)人畢生之精力也不可能把Java所有的相關(guān)技術(shù)都學(xué)通,何況新技術(shù)還在層出不窮地推出,3年之前誰(shuí)會(huì)知道Struts會(huì)成為Web框架事實(shí)上的工業(yè)標(biāo)準(zhǔn)。2年之前誰(shuí)會(huì)知道Hibernate會(huì)在今天獨(dú)領(lǐng)風(fēng)騷。既然已經(jīng)不能指望一次性把java技術(shù)的方方面面都學(xué)個(gè)通,在實(shí)際中也只能是需要什么技術(shù)再學(xué)習(xí)什么技術(shù)了。而能否選擇一本好的參考書(shū)籍帶來(lái)的就是事半功倍和事倍工半的效果。所以我覺(jué)得花點(diǎn)時(shí)間放在選擇書(shū)籍上面還是很值得的,否則你在后面只會(huì)花更多的時(shí)間。下面我談?wù)勛约哼x擇書(shū)籍的一些經(jīng)驗(yàn),不一定正確。首先看作者,像上面提到的那些書(shū)的作者,都是業(yè)界鼎鼎大名的,選擇他們的書(shū)一般錯(cuò)不了。大家看的書(shū)多了,自己胸中自然也會(huì)有一個(gè)list,哪些作者是信得過(guò)的。二看出版社,計(jì)算機(jī)書(shū)籍方面,Oreilly,Addison-Wesley都是公認(rèn)比較好的出版社。對(duì)于目前比較流行的Java技術(shù),Oreilly的 in Action系列是不錯(cuò)的選擇。另外我還會(huì)去看看Amazon網(wǎng)站()的書(shū)評(píng),一般小于3星級(jí)的書(shū)我都不會(huì)考慮。還有一個(gè)好去處theserverside,的書(shū)評(píng),這里的書(shū)評(píng)比較有趣,往往都有很激烈的爭(zhēng)論,里面經(jīng)常會(huì)看到一些名人在發(fā)言。我要向所有Java學(xué)習(xí)者推薦,如果我的收藏夾里面只能存放兩個(gè)網(wǎng)站,我會(huì)選擇java.sun和theserverside。在這里你可以了解最新的Java動(dòng)態(tài),可以學(xué)習(xí)第一手的Java資料,可以看到Java高手們(里面不乏業(yè)界大腕)激烈辯論。in Action
到此階段,Java Developer的基本功底應(yīng)該算是打好了吧,往后就是不斷學(xué)習(xí)嘍。結(jié)束這一段之前,最后再介紹一本書(shū)Oreilly的, Second Edition ,因?yàn)槲矣X(jué)得多線(xiàn)程編程屬于Java基本功,每一個(gè)想學(xué)好Java的人都應(yīng)該好好掌握。
提高篇
在這個(gè)階段應(yīng)該從軟件架構(gòu),F(xiàn)ramework層次上來(lái)學(xué)習(xí)了。作為面向?qū)ο蟮氖ソ?jīng), 這本書(shū)是不得不推薦的。不用再多說(shuō)了,這本在面向?qū)ο箢I(lǐng)域地位完全是屬于教父級(jí)別的。不管你學(xué)習(xí)的是什么OO語(yǔ)言,不管你現(xiàn)在是用.Net還是J2EE開(kāi)發(fā),這本書(shū)都是你進(jìn)階之路上的必讀之書(shū)。而則專(zhuān)門(mén)針對(duì)于J2EE來(lái)討論設(shè)計(jì)模式,書(shū)中Sun Java Center的資深設(shè)計(jì)師描述了J2EE關(guān)鍵技術(shù)的模式。最佳實(shí)踐,設(shè)計(jì)策略和經(jīng)過(guò)驗(yàn)證的解決方案。對(duì)于每一個(gè)希望成為J2EE 架構(gòu)師或者設(shè)計(jì)師,這本書(shū)值得一讀。學(xué)習(xí)設(shè)計(jì)模式的時(shí)候,建議是結(jié)合實(shí)際的源代碼來(lái)看,比如看看Junit源代碼,你可以看到很多設(shè)計(jì)模式優(yōu)雅的實(shí)現(xiàn),作者之一Erich Gamma本身就是的作者。至于J2EE的設(shè)計(jì)模式,Sun還開(kāi)辟了專(zhuān)門(mén)的空間,里面有對(duì)常用模式的討論又提供了詳細(xì)的源代碼樣例。正如Grady Booch所說(shuō),模式對(duì)于普遍問(wèn)題提供了通用的解決方案,利用模式就等于擁有一個(gè)強(qiáng)大的專(zhuān)家隊(duì)伍。如果你還沒(méi)有學(xué)習(xí),現(xiàn)在就開(kāi)始吧。此外對(duì)于面向?qū)ο蠓椒ㄕ?,極限編程的思想也應(yīng)該有所了解。對(duì)于J2EE項(xiàng)目的具體實(shí)施,Rod Johnson的也很有價(jià)值,該書(shū)以作者豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)向我們展示如何用盡可能簡(jiǎn)單的解決方案構(gòu)建J2EE 應(yīng)用,書(shū)中作者第一次提出這樣的觀點(diǎn),很多時(shí)候,J2EE應(yīng)用完全沒(méi)有必要用到EJB,對(duì)于言必稱(chēng)EJB的廣大J2EE開(kāi)發(fā)者來(lái)說(shuō),怎么說(shuō)也有點(diǎn)驚世咳俗的味道。當(dāng)然,作為Servlet和JDO兩個(gè)專(zhuān)家組的成員,這可不是作者信口胡騶的。今天風(fēng)靡Java世界的Spring框架最初便是源于此書(shū),而IOC,AOP等概念更是被時(shí)下的java開(kāi)發(fā)者掛在嘴邊。最后,作為對(duì)Java的深入學(xué)習(xí),Java技術(shù)的各個(gè)Specification也有必要一讀。暫時(shí)就寫(xiě)到這里吧。
當(dāng)前名稱(chēng):關(guān)于postgresql實(shí)戰(zhàn)的信息
分享路徑:http://www.ekvhdxd.cn/article32/dsdjgpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、App開(kāi)發(fā)、商城網(wǎng)站、微信小程序、關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)