對於我對開源的第三次貢獻,我參與了 Ghostfolio 項目,這是一個投資組合管理套件。
幽靈作品集
/
幽靈作品集
開源財富管理軟體。 Angular NestJS Prisma Nx TypeScript ?
幽靈作品集
開源財富管理軟體
Ghostfol.io | 現場演示 | Ghostfolio 高級版 | 常見問題解答 | 部落格 | 鬆弛 | X
Ghostfolio是一款利用網路技術建構的開源財富管理軟體。該應用程式使忙碌的人們能夠追蹤股票、ETF 或加密貨幣,並做出可靠的、數據驅動的投資決策。該軟體專為個人連續操作使用而設計。
Ghostfolio 進階版
我們的官方Ghostfolio Premium雲產品是最簡單的入門方式。由於它節省了時間,這對大多數人來說將是最佳選擇。收入用於支付託管基礎設施的成本並資助持續的開發。
如果您喜歡在自己的基礎架構上執行 Ghostfolio,請在自架網站上找到更多說明。
為什麼選擇 Ghostfolio?
Ghostfolio 適合您,如果您...
- ?在多個平台上交易股票、ETF 或加密貨幣
- ?尋求買入並持有......
[功能] 在樹狀圖組件中設定工具提示
第3808章

本期的目標是在基於chart.js的treemap圖表元件中設定一個工具提示。
- 將 [baseCurrency]="user?.settings?.baseCurrency" 傳給
在 home-holdings.html 中 - 工具提示應顯示持有的 valueInBaseCurrency(如果可用)以及使用者的貨幣(baseCurrency)
- 嘗試使用 getTooltipOptions() 樣式
在 GitHub 上尋找待解決的開放問題時,我遇到了這個問題。這次我一直想提高我的遊戲水平並開發一個功能,所以我認為這將是一個值得嘗試和解決的好問題。我沒有考慮太多就報名了。後來我發現這是一個 Angular 問題,這進一步激起了我的興趣,因為我對學習 Angular 很好奇。
雖然我報名了,但有一段時間我無法完成它——學校作業和生活都阻礙了我。一周過去了,我決定開始工作,所以我開始閱讀貢獻文檔,發現他們使用了 Docker。我想「太完美了,這週我的另一門課程教 Docker,所以我已經準備好了」。我分叉並克隆了存儲庫,並嘗試安裝依賴項,但立即遇到了問題 - 與對等依賴項衝突有關。即使我按照說明操作,該應用程式甚至無法啟動。這嚇得我又一週不敢再做這件事了。
當我再次嘗試時,我再次克隆了我的 fork,並這次構建了應用程序,但一些測試在我開始之前就失敗了。我想在專案的 Slack 中聯繫一下,詢問是否只是我的問題,維護者回應說 CI 中的建置正在通過。我再一次被嚇得不敢參與這個計畫。
最終,維護者對這個問題發表了評論,要求更新。我決定不能再拖延了,並準備好花很多時間來解決這個問題。
我從上游引入了更改並再次克隆了我的分支,但測試仍然失敗。啟動應用程式時,伺服器會記錄警告,指出某些匯入失敗,因此我決定對此進行調查。該專案使用了一種名為 Nx 的 monorepo 管理技術,而該問題似乎相關,因此我花了一些時間研究它的作用。他們還使用了一種叫做 Storybook 的東西,他們在貢獻文件中提到瞭如何開始,但沒有費心解釋它是什麼。我決定檢查一下,發現它是透過單獨渲染組件來開發組件的。當我啟動 Storybook 時,它也不起作用,並且會出現導入錯誤。我花了一點時間嘗試調試導入問題,但後來意識到我可以只處理我的問題而不處理它們,所以我決定忽略它們並開始工作。
我花了一段時間才弄清楚我應該做什麼以及問題的範圍是什麼。事後看來,最初的問題相當神秘,儘管被標記為「好第一個問題」。我想不同的項目對於什麼是好的第一期有不同的想法。我首先瀏覽文件來找到我應該處理的元件。
我嘗試尋找我應該在 UI 中使用的圖表元件,但它在其父元件中不可見。我留下評論詢問維護者,但很快就弄清楚了。我在圖表元件及其父元件中看到了一些初始化函數,因此我在其中編寫了 console.log(this) 以查看我正在使用的內容,就在那時我意識到圖表元件甚至沒有被渲染。我深入研究了客戶端中的設置,發現了一個實驗性功能切換,這是我透過查看組件的 HTML 模板並發現它隱藏在條件語句後面而發現的。
當我真正看到我正在做的事情后,事情變得容易了一些。這個專案使用 Chart.js 作為圖表,因此我查看了它的文件來了解工具提示的工作原理。由於他們有專門用於工具提示的輔助功能,我心想「好吧,讓我們看看他們如何在應用程式的其他圖表中使用工具提示」。我開始研究一些使用工具提示的其他元件,並研究它們與我正在開發的元件的共同點,即它們如何將配置選項傳遞給工具提示等。我注意到他們如何在其他組件中設置工具提示並嘗試複製它,它成功了!我有一個有效的工具提示!兩週後! ……仍然沒有顯示正確的數據!但這仍然是進步!突然間,這個問題似乎變得更可行了。我沒有被龐大的單一儲存庫嚇到,而是能夠將自己需要做的事情歸零,這就是我需要擔心的。
我在嘗試找出如何將資料傳遞到工具提示時遇到了一些困難。在仔細研究了我如何將傳遞的資料複製到工具提示的元件後,我意識到它不適用於我正在開發的元件。它以與我不同的方式接收和處理數據,當我注意到它位於apps/client/src/app/components/ 中,而我的組件位於libs/ui/src/lib 中時,我意識到了這一點。我認為 monorepo 中完全不同部分的元件可能被設計為以不同的方式工作,因此我搜尋了使用工具提示的其他元件,幸運的是,我在與我的元件相同的目錄中找到了一個元件。
我最初必須關閉為配置工具提示而添加的函數參數的類型安全性,因為我從中獲取選項的對象具有我需要訪問的屬性,而這些屬性並未為其類型定義。我本來打算向維護人員詢問此事,但當我找到一個與我的組件更接近的組件時,我意識到我根本不需要任何參數。他們沒有定義參數,而是使用自動傳遞給工具提示對像上的標籤回呼函數的上下文對象,所以我做了同樣的事情。儘管我不再需要參數,但我遇到了一個問題,當我嘗試刪除參數時,其他配置選項將變得未定義。起初我不確定發生了什麼,但它在一段時間後開始工作,所以我猜編譯器只是落後於我的更改(也許我忘記保存文件?)
所以我能夠將必要的資料放入工具提示中,但我仍然必須對其進行格式化。我再次查看其他組件,看看他們是如何做到的。他們將上下文物件中的值傳遞給 Number.toLocaleString() ,結果在工具提示中呈現,所以我做了同樣的事情,結果看起來漂亮乾淨,所以我的 PR 已經準備好了。
樹狀圖組件中的功能/設定工具提示
第3897章

修復#3808。
我的實作是基於portfolio-proportion-chart.component.ts中的工具提示。如果您需要任何更改,請告訴我。
我將我的 PR 標記為可供審核,並收到了有關某些格式變更的回饋。事實證明,我應該在程式碼中使用更多的換行符,因為所有內容都被融合在一起,這是在維護者指出後我才注意到的。
我做了所要求的更改,但幾天沒有收到回复,這讓我很緊張。幸運的是,維護者最終回覆了我並合併了更改。
更好的是,維護者評論說我可以解決一個後續問題,以便在工具提示中添加更多資料。由於我現在知道了該專案是如何設定的,對 Angular 和 Chart.js 中的工具提示有了更多了解,因此與第一個問題相比,這個問題看起來容易多了。果然,這個問題只花了我一個小時左右,審核後也合併了。
[功能] 依名稱擴充樹狀圖元件中的工具提示
第3904章

此問題的目標是透過新增名稱(或符號作為後備)來擴展樹狀圖組件中的工具提示:
return [ // `${name ?? symbol}`, // value or percentage as before ];
從 GfPortfolioProportionChartComponent 中獲得靈感。
按名稱在樹狀圖組件中新增功能/擴充工具提示
第3907章

修復#3904。
此 PR 將名稱(和符號作為後備)新增至 GfTreemapChartComponent 中工具提示的標籤。
如果願意的話,也應該可以將名稱/符號顯示為工具提示標題,但 GfPortfolioProportionChartComponent 將它們放在標籤中,所以我決定保持一致。
解決這個問題大大增強了我跳入未知程式碼的信心。儘管一開始壓力很大,但一旦我專注於我真正需要做的事情,我就能夠完成我的任務,儘管我對 Angular、Nx 或 Chart.js 的了解為零。
這就是這篇文章的全部內容。我還有一個 Pull Request 需要為 Hacktoberfest 處理,所以希望很快能看到另一篇部落格文章!
以上是跳入深淵的詳細內容。更多資訊請關注PHP中文網其他相關文章!

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。