別再重複造輪子了,幾個值得應用到項目中的 Java 開源庫送給你

我是風箏,公眾號「古時的風箏」。文章會收錄在 JavaNewBee 中,更有 Java 後端知識圖譜,從小白到大牛要走的路都在裏面。公眾號回復『666』獲取高清大圖。

風箏我作為一個野路子開發者,直到遇見下面的這幾個工具庫,才知道之前重複造了不少輪子,而且輪子還不一定有人家的圓。相信跟我一樣,沒事兒造輪子的人還不在少數,有些人就是對造輪子感興趣,這個咱也無話可說,但是,比如我,我是造輪子之前不知道這世上已經有好用的輪子了,害,無知限制了我的想象力。

比如我們在拿到一個 List 集合之後,要對這個集合進行判空操作,以前我一直是這樣寫的:

List<String> list = getList();
if (list != null && list.size() > 0) {
    //do something
}

雖然這樣也沒什麼問題,但是,我懶啊,每次敲這麼多代碼,也挺累啊。有同學說,那你包裝成一個方法不就行了,每次調用個方法就 OK 啦。這不,同學,你就在造輪子了,已經有人幫你寫好了這樣類似的一系列方法了。

來讓我們認識認識這些輪子吧。

Java 8 Stream

Stream 不算是工具庫,但是通過 stream 提供的一系列方法,可以實現集合的過濾、分組、集合轉換等諸多操作。

例如下面的方法,實現列表元素根據某個字段去重的功能。

List<User> userList = new ArrayList();
//添加元素
userList =  userList.stream().filter(distinctByKey(user->user.getUserId())).collect(Collectors.toList());

private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
      Map<Object,Boolean> seen = new ConcurrentHashMap<>();
      return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}

apache commons

官方地址:http://commons.apache.org/

這不是一個庫,而是一系列的工具庫。

由於包含的庫過多,我就不一一列舉了,可以到官網一探。有集合處理的、數學計算的、IO 操作的等等,其中最常用的莫過於 Apache Commons Lang 和 Apache Commons Collections 這兩個。

Apache Commons Lang 包括一系列工具類,有字符串相關的、時間處理的、反射的、併發包的等等,Apache Commons Collections 專門用作集合處理。

下面舉幾個例子說明一下,更詳細的內容可以到官網查看文檔。

字符串判空操作

String s = "";
Boolean isEmpty = StringUtils.isEmpty(s);

獲取類的全名稱

ClassUtils.getName(ClassUtils.class);

判斷集合是否為空

Boolean isNotEmpty = CollectionUtils.isNotEmpty(list);

反射獲取某個類的所有 Field

Field[] fields = FieldUtils.getAllFields(User.class);

Google Guava

官方地址:https://github.com/google/guava

和 Apache Commons 有點兒類似,它也是包含了一系列的比如字符串、集合、反射、數學計算等的操作封裝,還可以用作 JVM 緩存。

舉幾個例子說明:

New 各種對象

List<String> list = Lists.newArrayList();
Set<String> set = Sets.newHashSet();
Map<String,Object> map = Maps.newConcurrentMap();

// 不可變集合
ImmutableList<String> immutableList = ImmutableList.of("1", "2", "3");

列錶轉符號分隔的字符串

List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
String result = Joiner.on("-").join(list);

> 1-2-3

求交集、並集、差集等

例如下面代碼求 set1 和 set2 的交集

Set<Integer> set1 = Sets.newHashSet(1, 2, 3, 4, 5, 6);
Set<Integer> set2 = Sets.newHashSet(1,2,3,4);
       
Sets.SetView<Integer> intersection = Sets.intersection(set1, set2);

Joda Time

官方地址:https://www.joda.org/joda-time/

一個日期、時間處理的工具庫。如果你不是經常做日期處理,那差不多每次需要的時候都需要查詢相關的 API,而有了工具類就不一樣了,只要一個 “.”,你想要的方法就出現了,而 Joda Time 就是一款好用的工具庫。

比如下面這個方法,計算到新年還有多少天。

public Days daysToNewYear(LocalDate fromDate) {
  LocalDate newYear = fromDate.plusYears(1).withDayOfYear(1);
  return Days.daysBetween(fromDate, newYear);
}

OkHttp3

官方地址:https://square.github.io/okhttp/

一個 HTTP 客戶端,使用簡單,性能良好,是時候放棄 HttpClient 了。

一個 get 請求:

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
  Request request = new Request.Builder()
      .url(url)
      .build();

  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

一個 post 請求:

public static final MediaType JSON
    = MediaType.get("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(json, JSON);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

Json 系列

Jackson

Spring 默認的 Json 序列化工具,其實已經足夠用了。

Gson

Google 出品,功能齊全。

FastJson

阿里出品,算法良好,性能最優。

EasyExcel

官方地址:https://www.yuque.com/easyexcel/doc/easyexcel

阿里開源的 Excel 操作工具庫,可以看做是 Apache POI 的增強封裝版、優化版。

如果你的數據量很大,那用 EasyExcel 可以節省內存,提升效率,並且沒有併發風險。

如果你的 Excel 足夠複雜,那用 EasyExcel 會比你直接用 POI 少些很多代碼。

比如我實現了下面這個 Excel 動態導出,包括動態表頭、動態合併單元格的功能,只用了很少的代碼,如果是使用 POI 的話,那可能代碼量增加不止一倍啊。

TinyPinyin

官方地址:https://github.com/promeG/TinyPinyin

中文轉拼音,把你輸入的中文轉換成拼音。比如搜索功能要實現這樣的功能,輸入 “fengzheng” 搜索,會匹配到 “風箏”這個詞語,這就需要中文轉拼音了。

有的同學說了,這不是拼音轉英文嗎?當然不是在輸入“fengzheng”的時候轉換了,而是在包含“風箏”的這條記錄中有一個拼音的額外字段,這樣搜索的時候直接匹配拼音那個字段。

chinese_name pinyin_name
風箏 fengzheng

反射工具庫 – jOOR

官方地址:https://github.com/jOOQ/jOOR

它是 JDK 反射包的友好封裝,通過一系列簡單友好的鏈式操作實現反射調用。比如下面這個例子

public interface StringProxy {
  String substring(int beginIndex);
}

String substring = on("java.lang.String")
                    .create("Hello World")
                    .as(StringProxy.class)
                    .substring(6);    

簡單的代碼實現 JDK 動態代理,節省了不少代碼。

MyBatis-Plus

官方地址:https://mp.baomidou.com/

只要你的項目中有數據庫訪問,那你肯定用過或者至少聽說過 MyBatis ,但是如果你只用 MyBatis 需要針對每個DAO方法寫對應的 SQL Statement(也就是 mapper.xml 中的代碼塊),當然有一些自動生成的工具,MyBatis 就有它提供的 MyBatis Generator,比如我也稍做加工,做過一個web 版的 MyBatis Generator,開發效率是提高了,但是每個 mapper.xml 文件的代碼量很大,於是 MyBatis-Plus 就要出場了。

官網上對他的定義如下:

  1. 只做增強不做改變,引入它不會對現有工程產生影響,如絲般順滑。
  2. 只需簡單配置,即可快速進行 CRUD 操作,從而節省大量時間。
  3. 熱加載、代碼生成、分頁、性能分析等功能一應俱全。

最後,在配上 MybatisX IDEA 插件,也是可以了。

vjtools

官方地址:https://github.com/vipshop/vjtools

這是唯品會的開源工具包,這裏主要介紹其中的 vjkit 模塊,是關於文本,集合,併發等基礎功能的核心類庫。這個庫是我很早之前搜索日期操作的時候偶然發現的,我發現裏面日期處理的 API 相當全面而且很實用,還在我的項目中用過一段時間。

最後

好用的工具庫可以提高我們的開發效率,而且也是我們學習源碼的好去處,和其他的開源框架(比如 Spring、Dubbo)一樣,看看優秀的代碼是如何實現的。

如果你還知道什麼好用、強大的開源工具包,歡迎在留言區分享,好東西不能獨享,讓更多的人受益。

各位大佬,給個推薦,讓我奮發圖強

我是風箏,公眾號「古時的風箏」。一個兼具深度與廣度的程序員鼓勵師,一個本打算寫詩卻寫起了代碼的田園碼農!你可選擇現在就關注我,或者看看歷史文章再關注也不遲。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計最專業,超強功能平台可客製化

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家公司費用怎麼算?

如何優雅地向公司提加薪

二哥,你好呀,我是你鐵杆粉絲,想向你請教一個問題。我是 2019 年 3 月份入職的,當時很菜,接手的是一個要離職同事的代碼,可把我害慘了,一邊推進度,一邊修 bug,7 月份一整個月都沒有在凌晨 3 點前睡過。幸好挺了過來,截止目前在公司待了一年零兩個月了,想找領導談薪水的問題,但不知道如何開口。

以上是讀者奔三十私信我的問題,很有代表性,我計劃着好好寫一篇文章來統一回復下,結果一拖再拖,拖了快一個月時間,真的非常非常抱歉。

我之所以拖,有兩個原因。第一個原因就是這個問題確實不太好回答,因為我自己親身經歷的漲薪就那麼幾次,並且我沒去過大廠,經驗不一定具備普適性;第二個原因就是,拖延症犯了,呵呵(戰術性)。

那接下來,就談談我自己僅有的幾次加薪情況吧,希望給小夥伴們一些參考。

我是大三就出去實習的,當時工資 1200 塊一個月,一起進來的二十多名新人都這個標準。這個不算是加薪,但起點大家要了解一下。

簡單介紹一下背景,可能一些新來的讀者不太清楚。

我是一名大專生,這沒什麼可恥的,真的。經常有一些讀者私信我說,“二哥,我學歷不好,大專生,畢業后被歧視怎麼辦?”

起點低,被歧視是正常的,要學會接受。人生下來就不是平等的,我們要做的就是自尊自愛。網絡上經常遇到一些噴子,留言噴我垃圾,我就回一句話:“我與你的區別就是,我越來越強大,而你,還是那個噴子,而已。”

大二結束后,我就去蘇州一家軟件園培訓了倆月,然後入職了一家日企(江蘇富士通,讀者群體里有沒有知道這家公司的?),當時軟件部剛剛成立,急需新鮮血液的融入,而我們這些廉價的勞動力正好是壓榨的對象。

實習結束后,回學校拿了畢業證(順帶和女朋友團聚了倆月時間),然後正式入職。但記不得當時具體的工資是多少了,四五千吧。

這次加薪我是沒有資本吭聲的,因為有一份工作就不錯了。況且這家公司發展的真不錯,項目部不斷擴大,剛開始一個部門,我回洛陽的時候已經四個部門了。

關鍵是,不缺項目啊,日方那邊源源不斷地供給着項目,最重要的是,資金。公司本來還有一片地,在鄧蔚路的綠寶廣場附近,修地鐵的時候賣了,然後在一個叫什麼區的地方買了幾棟樓,名字我忘記了,當時挺偏僻的。

女朋友畢業后,去蘇州過一段時間,我們在市區租了一間房子,每次上班我要先走一段路,搭公司的大巴去上班,要一個小時左右車程呢。

由於我是大專生,所以這次加薪,要比本科學歷的同事少三四百,具體数字同事之間也不太方便交底,反正是確實少一些,但差額並沒有很離譜。

正式入職一年後,我換了一個項目組, 改做 Flex 了。之前基本上是打雜,搞過 SQL、搞過 Ruby、搞過 Spring + Hibernate + Postgresql,基本上是哪需要就往哪插。

這一年時間里,我了解到公司的發展重心將會是 Flex,就私下里研究了整個框架的源碼,並且寫了一個內部聊天工具,供幾個老資格的同事聊魔獸世界用。這點我在之前的文章里提到過。

(心機 boy,有沒有?)

正是憑藉這個不起眼的工具,我被這幾個老資格的同事推薦給了後來的直屬領導,說我這個年輕人有技術,頭腦又靈活,是塊好材料。

新成立的項目組,加上翻譯,好像是二十三個人,不算小的一個團隊了。我帶五個新人編碼。

就這樣幹了半年,領導覺得我的表現無可挑剔,確實能攻堅,就主動找我提加薪。當時激動壞了,內心告訴自己,一定要多要點,超過那幾個一塊來的本科生。

然後我就順嘴說了一個數目,自己覺得不算少了,領導也二話沒說就欣然答應了。

結果,我特么天真了,當時要太少了。後來幾個同事透露說,我提的額度和他們差不多。麻蛋,白白錯過了一次拉開差距的機會啊。

事後諸葛亮一下,要提加薪,最好了解一下公司內部的行情(想辦法)。領導他自己那是有個標準的,如果你確實表現優異,要想盡辦法知道領導這個線是多少,然後再這個基線上往上浮動一些,尤其是領導主動過來問價的時候。

第二次加薪是我離開蘇州的前一個月,2013 年底。這次加薪是公司主動加的,因為之前的合同到期了。

我當時和之前的那個領導鬧翻了,被調換到了另外一個開發部,所以動了離開的心思。再加上女朋友已經回到了洛陽,確實到了該和蘇州說再見的時候了。

拿到第一筆獎金后,我提了離職。結果公司比我精明得多,年底的獎金是分批發的,況且第二筆獎金比第一筆獎金多得多。我顯然是沒機會拿第二筆了。

過年前,領導終於批了我的離職申請,手續辦完,公積金取了出來后,我就回洛陽了——帶着不舍,畢竟在蘇州生活了三年半,有感情了。

第三次加薪是我回到洛陽工作后的第二個月,2014 年 3 月份。當時實習工資只有 2500,實在是受不了,第二個月過了一周我就迫不及待地找領導申請轉正了。

公司是一家挂名北大青鳥的培訓機構,不過我不是做講師,而是在獨立運營的開發部——承接一些政府或者個人項目。

團隊小,而我的實力確實過硬,再加上和領導、人事之間的關係好,公司就破格給我轉正了,工資上漲了 2/3,並且繳納了五險一金,加上績效獎,每個月到手的工資超過了當時洛陽的平均房價。

為什麼敢提轉正,敢提漲薪,這裏很重要的一點就是,我在團隊的表現是獨一檔的,工作上沒有解決不掉的難題,還能給領導提出建設性的意見,關係處得非常好。

每天早上,我基本上是第一個到工作崗位的,因為辦公室鑰匙我拿着,不去早也不行啊——當然了,這件事是我主動請纓的。

(心機 boy,有沒有?)

因為是指紋打卡嘛,我打卡的時間還被人事在月度總結會議上表揚過一次。上班早,下班我也不甘示弱,領導啥時候走我就啥時候走。

所以,綜合工作表現,為人處事的表現,公司不給我轉正說不過去啊,對不對?

簡單總結一下,也算是對讀者奔三十的一些建議。如何優雅地向公司提加薪?必須得做好以下三點:

第一,工作表現確實沒得說,該抗的事得能抗下來。逼着領導過來找你加薪,前提是自己一定要了解公司內部的漲薪結構,不要少要,也不要獅子大開口。

第二,如果是小公司的話,和領導的關係走得近一些,和同事之間的關係處得好一些,不要背後捅刀子。這樣提加薪的時候,領導不為難。

第三,臉皮要厚,臉皮要厚,臉皮要厚,重要的事情說三遍。

如果覺得文章對你有點幫助,請微信搜索「 沉默王二 」第一時間閱讀。回復關鍵字「簡歷」更有一份技術大佬整理的優質簡歷模板,助你一臂之力。

本文已收錄 GitHub,傳送門~ ,裏面更有大廠面試完整考點,歡迎 Star。

我是沉默王二,一枚有顏值卻靠才華苟且的程序員。關注即可提升學習效率,別忘了三連啊,點贊、收藏、留言,我不挑,嘻嘻

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※超省錢租車方案

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

※推薦台中搬家公司優質服務,可到府估價

移動UI系列 – 簡單地使用半衰期算法來預測手勢的滑動方向與速度

前言

有一個問題, 給定一個物體的運動軌跡, 包含時間和坐標的數組, 如何使用這個數據來預測物體未來的運動走勢??

本文提供了一個很簡單的方式去實現這個算法. 效果夠用, 又簡單, 有一定的準確程度. 

 

緣由

以前做過的一些手機應用, 沒有做動畫的, 也沒做手勢. 這個做起來挺麻煩的. 

最近開始了新的手機項目(微信項目模板) , 基於 Blazor server side , 其組件化的方式可以很方便地把各種常用的通用的東西封裝成 組件/控件 

於是, 就打算讓這段時間辛苦一些, 一次過把動畫的部分補上, 讓以後的項目更加牛逼, 意思是讓客戶更加樂意地掏錢. 

 

問題

手勢的一個問題是力度/速度判斷, 劃得快, 劃得慢, 先快後慢, 先慢後快, 都得有一個合適的算法來得到一個最後速度. 

這個算法一定要滿足基本的需求後, 要盡量簡單, 要目測, 理論上沒有bug . 

這個時候, 半衰期算法就派上用場了. (不知道有沒有半衰期算法這玩意, 應該說是使用半衰期的原理)

 

原理

這是一個很簡單的權重計算, 有很多個不同時間點的坐標, 每個相鄰時間的兩個數據, 有距離差, 有時間差

關鍵是解決先慢後快, 先快後慢的數據的處理問題, 那麼我們只需要

把新的數據, 乘以更大的權重, 把老的數據, 乘以更小的權重, 最後得到這個距離權重的合成值, 就OK了. 

 

預覽效果:

注意, 因為gif的幀數不夠, 要更好效果還是複製代碼運行一遍. 

 

 

測試代碼:

<! DOCTYPE html > 
< html > 
< head > 
    < meta charset ="utf-8"  /> 
    < title > Half Life </ title > 
    < style > 
        html, body, canvas { width : 100% ; height : 100% ; margin : 0 ; padding : 0 ; box-sizing : border-box ; overflow : hidden ; }
    </ style > 
</ head > 
< body >

    < canvas ></ canvas >

    < script type ="text/javascript" >

        var CONST_HALF_LIFE_SPAN =  50 ;     //半衰期,設置得越小,就越看淡以前的速度
        var CONST_MAX_SAMPLES =  15 ;         //保留最後15個點的數據減少無意義的運算量,主要看瀏覽器觸發onmousemove的頻率來調整.

        var pts = [];
        document.onmousemove =  function (e) {

            //儲存數據
            pts.push({ time: Date.now(), x: e.clientX, y: e.clientY });
             if (pts.length > CONST_MAX_SAMPLES) pts.shift();

            //計算

            var xs =  0 , ys =  0 ;     //走過的路的長度. 
            var previtem = pts[ 0 ];
             for ( var index =  1 ; index < pts.length; index ++ ) {
                 var newitem = pts[index ];
                 var t = newitem.time - previtem.time;

                //讓這個數據衰減一次,衰減程度由時間差決定. 
                var halflifefactor = Math.pow( 0.5 , t / CONST_HALF_LIFE_SPAN);

                //注意,這裏沒有計算速度,而是直接用距離來預測將來要走過的距離.

                //走過的距離每一次都要衰減,每一段的路程都多次乘以各時間差的factor, 
                //原理是, 0.5 ^ (t1 + t2 + t3...)等於0.5 ^ t1 * 0.5 ^ t2 * 0.5 ^ t3 * ... 
                xs = xs * halflifefactor + newitem.x - previtem.x;
                ys = ys * halflifefactor + newitem.y - previtem.y;

                previtem = newitem;
            }

            //畫圖

            var CONST_EFFECT_FACTOR =  2 ;     //乘以一個因素來畫圖用,這裏數值可以充當'摩擦係數'大小的效果. 
            xs = Math.floor(xs * CONST_EFFECT_FACTOR);
            ys = Math.floor(ys * CONST_EFFECT_FACTOR);

            var x0 = e.clientX, y0 = e.clientY;

            var canvas = document.querySelector( " canvas " );
             var ctx = canvas.getContext( " 2d " );
             var w = canvas.width = canvas.offsetWidth;
             var h = canvas.height = canvas.offsetHeight;
            ctx.clearRect( 0 , 0 , w, h);
            ctx.lineWidth =  5 ;
            ctx.strokeStyle =  " blue " ;
            ctx.beginPath();
            ctx.moveTo(x0, y0);
            ctx.lineTo(x0 + xs, y0 + ys);
            ctx.closePath();
            ctx.stroke();

            console.log(xs, ys)
        }
    </ script >

</ body >

</ html >

 

簡單講解

可以看出, 代碼量非常少. 與其說這是一種”算法” , 不然說是一種”思路” 

 

代碼先是記錄每一點的數據, 然後放進 pts 數組 

在鼠標移動後, 使用pts 數組, 計算出每一點的x , y 的移動量, 讓每一段的移動量都使用 半衰期 的方式進行調整. 

最後得出的xs , ys ,是理論上“最近移動的距離.”

使用這個數值,作為“參考值” ,就可以用於更多的判斷. 

 

例如我最近做的一個簡單的 swipe 組件, 

手指滑動了1/4個屏幕,然後再加上理論的參考值,  一共超過了1/2個屏幕,就切換到下一個panel 

這個參考值很重要. 如果手指只是很慢地滑動, 那麼參考值就很小, 就不應該切換. 如果手指很快地滑動, 那麼就應該切換panel

 

可改良的方案

上面方案, 是計算’移動距離’ 的, 它有一個弊端, 無論劃得多快, 移動的總數是有上限的. 

這段代碼完全可以 除以t , 得到一個 速度值,

這更加合理, 但是注意速度的合成方式不能普通地累加. 

 

這就留給有興趣的網友自己嘗試了. 也不難. 畢竟本文傳播的是 半衰期 的思路. 不宜說太細. 

 

 

擴展思路

其實這種算法, 一直都有人用. 很奇怪的就是, 沒有看到什麼人專門寫文章介紹? 

半衰期除了計算運動軌跡, 還可以很好地去統計熱度. 

例如一篇文章, 一個視頻, 有不同時段的點擊數量. 每一天都不一樣. 

 

怎樣使用最少的儲存方式, 去儲存一個合理的熱度參考值? 

可行的方法是,儲存兩個數值 (就夠了) : 

articleRateValue 用於儲存熱度值

articleRateTime 用於儲存熱度時間

 

每一次點擊, 都使用這個公式儲存: 

articleRateValue = newclickcount + articleRateValue * POW(0.5, (NOW – articleRateTime) / HALF_LIFE_SPAN )

articleRateTime = NOW 

排序的時候麻煩點, 要實時的計算 articleRateValue * POW(0.5, (NOW – articleRateTime) / HALF_LIFE_SPAN ) 來得到每個文章的熱度值. 

(對於排序的問題, 還有兩個變通的做法, 如果以後有時間寫一篇文章細說這個熱度方案, 再詳細解說)

(最簡單的變通方法是, 每晚找服務器空閑的時候, 把表裡的數值都重新計算一次, 平時排序的時候不計算) 

 

注意這裡有一個 HALF_LIFE_SPAN 的概念. 如果 HALF_LIFE_SPAN 是一天, 那麼昨天的熱度就佔1/2 權重, 前天的就佔 1/4 權重, 大前天的佔1/8 

這樣按天算也有個弊端, 我想按週, 按月算那怎麼辦? 

再存兩組數值 :

weeklyRateValue

weeklyRateTime

monthlyRateValue

monthlyRateTime 

如此類推. 

 

這樣做的最大好處是, 無需詳細地紀錄每一次的點擊數據. 非常節省空間.  

缺點是, 每一組數據, 只適合一個半衰期時段的數值, 要儲存多個參考值得準備多組數據. 

 

最後

時間過得真快. 這段時間挖的坑太多, 在業餘時間內根本沒有時間填坑..

5月初的時候實現了BlazorCefApp , 到現在開了幾個有意義的坑, Blazor微信項目模板 算是一個. 

但是由於沒有時間寫博客, 有時只是偶爾把測試的視頻放到B站: https://space.bilibili.com/540073960 

有興趣用Blazor 來做微信項目或手機網頁項目的, 可以去了解一下. 當項目成熟後, 會發佈到github上. 

—-

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

【其他文章推薦】

※回頭車貨運收費標準

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

8.38萬元起同級別最精緻的SUV車主怎麼說

但是就是動力不咋的,不符合主流的1。5T發動機的動力表現。這估計就是在你看得見摸得着的地方做的很好,但是內在就不好說了。不滿意的:點煙器和車載電腦的USB接口在扶手箱下面的一個小盒子里,使用極不方便,儲物空間太小,畢竟這個車子的尺寸比較小。

其實剛開始寫這篇文章我是拒絕的,因為H2s才剛上市,車主根本不好找,但是很多讀者都想進一步了解一下H2s,想知道車主的使用情況。沒辦法,編者只有硬着頭皮,各種找朋友問同學,費了好大的勁才找到了一些車主,下面一起來看看這些車主對他們H2s的評價。

長城汽車-哈弗H2s

指導價:8.38-10.28萬

哈弗H2s是在11月18日廣州車展上市的,憑藉更亮麗的外觀和更精緻的內飾,再加上新的動力系統贏得了很大的關注度。

車主:雙截棍

購買車型:2017款 藍標 1.5T 手動精英型

裸車購買價:8.78萬

最滿意的地方:外觀很好看,我買車最看重的是顏值,當時對H2s一見傾心。風琴式的中控台個人認為很不錯,有點天馬星空的感覺。不過就是不好打理。萬年不變的1.5T發動機提速較慢,不過畢竟是帶渦輪的發動機,速度上來使勁踩油門提速還是有一點的。我身高1.75米,體重150斤,膝蓋老是碰到車前面的塑料蓋,所以大長腿的慎買啊!

不滿意的地方:新車異味好大,異響暫時沒發現,空間比較小,車子沒有胎壓監測。

車主:馬小虎

購買車型:2017款 紅標 1.5T 手動精英型

裸車購買價:8.88萬

最滿意的地方:當初在紅藍標之間猶豫,後來覺得年輕么。就要選個霸氣的外觀,大嘴的紅標也許更適合自己,雖然紅標比藍標貴了1000塊錢,但是卻多了胎壓監測裝置、后視鏡電動摺疊,這兩個配置還是值1000塊錢的。H2s的整體配置挺高的,內飾做工也比較好。但是就是動力不咋的,不符合主流的1.5T發動機的動力表現。這估計就是在你看得見摸得着的地方做的很好,但是內在就不好說了。

不滿意的:點煙器和車載電腦的USB接口在扶手箱下面的一個小盒子里,使用極不方便,儲物空間太小,畢竟這個車子的尺寸比較小。車子跑了300公里,油耗9L,新車沒有太大的參考性。

車主:狗子

購買車型:2017款 紅標 1.5T 自動精英型

裸車購買價:9.88萬

最滿意的地方:價格很實惠,配置比較高,內飾很精緻,做工也很好。其中變速箱為格特拉克的7速濕式雙離合變速箱。十萬的車子用上了濕式雙離合,看來長城這次是真的下本了。以前備受吐槽的哈弗變速箱終於在H2s上得到了改善。這款變速箱反應速度很快,邏輯清晰,平順性很好,底盤調教很紮實,行駛質感很好,但是還是受到那個老舊的發動機的拖累,提速較差。如果換個1.5T發動機,體驗會好很多吧!

不滿意的:1.5T發動機該換了,座椅靠前了安全帶就跑到了後面,懸架有點硬,兒童座椅的接口處理的很粗糙。油耗目前不到9L。

總結:H2s用上了7速濕式雙離合變速箱,這一點值得表揚,同時外觀靚麗,配置較高,內飾精緻,行駛質感較好。但是1.5T發動機確實該換了。如果很在乎動力,那麼H2s會讓你失望的。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

價錢低逼格不低,小弟車型這麼屌,叫大哥怎麼混?

由於全系的X1使用了UKL平台,橫置布局的發動機,再加上對車內空間的優化,最終的表現非常出色,加上X1的第二排座椅還可以前後移動和調節靠背角度,空間表現已經超越了其大哥X3。X1 xDrive25Li使用了代號為B48A20Ο0的高功率版2。

在中國的傳統家庭里,有一個非常有趣的現象,如果你有哥哥或者姐姐,一般情況下都不能比哥哥姐姐早結婚,父母要催婚,肯定是先從哥哥姐姐下手,如果弟弟妹妹先結婚了,哥哥姐姐會過上很慘的被催婚生活。

其實在很多領域都存在着這樣的現象,例如考量業績的銷售業,鄉鎮級分銷點的銷量比縣城級分銷點高,那就非常尷尬了。

但是在汽車行業,卻是截然不同,消費者非常樂意看到某車型超越自己的大哥,最典型的例子就是經常被冠以“小S”稱號的奔馳E級。

我們拿同樣是320 L的奔馳E級與S級進行對比,雖然兩者採用了同樣的設計語言,但是在車身尺寸上還是相差甚遠的,奔馳E 320 L 4MATIC的車身尺寸為:5065x1860x1482 mm,軸距:3079 mm,奔馳S 320 L 商務型的車身尺寸為:5250x1899x1494 mm,軸距:3165 mm。

奔馳E級雖然後排座椅的橫向空間和頭部空間不及S級,但是後排的腿部縱向空間表現幾乎一樣,非常出色。奔馳E 320 L 4MATIC指導價:62.98萬,奔馳S 320 L 商務型指導價:93.80萬,兩者同樣擁有后風擋遮陽簾和後排側遮陽簾,E 320L還多出了後排側隱私玻璃。

兩車的指導價雖然相差30.82萬,但是發動機同樣是3.0T雙渦輪增壓V6發動機,E 320 L 4MATIC更是擁有9AT和全時四驅系統,配置上比S 320 L 商務型多出了無鑰匙進入、電動/感應後備廂、方向盤/電動座椅/后視鏡記憶功能,還有自適應巡航、主動剎車等一系列高科技配置。

雖然奔馳E級和S級在氣場上還是有不少差距,但如果讓選擇,還是會選擇E級,因為是配置控,同時E 320的机械品質足以滿足絕大多數情景的需求。

接下來的這個對比更加有看點,寶馬X1 xDrive25Li 豪華型對比寶馬X3 sDrive20i,兩者的指導價分別是43.9萬和42.1萬,價格非常接近,重點是兩車的車身尺寸差距很小,寶馬X1的軸距也只是比X3短了30mm而已。

由於全系的X1使用了UKL平台,橫置布局的發動機,再加上對車內空間的優化,最終的表現非常出色,加上X1的第二排座椅還可以前後移動和調節靠背角度,空間表現已經超越了其大哥X3。

X1 xDrive25Li使用了代號為B48A20Ο0的高功率版2.0T發動機,X3 sDrive20i則是使用N20B20的低功率版2.0T發動機,X1的動力表現比X3要好出不少,而且X1 xDrive25Li是前置適時四驅,X3 sDrive20i只是前置后驅。

在配置方面,X1 xDrive25Li多出了無鑰匙進入系統、電動/感應後備廂方向盤換擋、HUD抬頭显示、GpS導航、藍牙、LED大燈、後排出風口、自動泊車、車道偏離預警等等,第二排座椅還可以前後移動和調節靠背角度。

與奔馳的E級和S級不同,X1 xDrive25Li和X3 sDrive20i在價格上相差無幾,X1使用了新的平台、新的動力總成、新的設計,可以說是把還沒換代的老X3打敗了,動力更強、配置更高。

林肯的MKC和MKX這兩款SUV的情況和X1、X3的情況有點相似,我們拿MKC的2017款 2.3T 四驅總統系列與MKX的2015款 2.0T 兩驅尊享版作對比,兩者的指導價分別是43.88萬和44.98萬。

先來進行配置對比MKC僅多出了方向盤加熱、前排座椅通風、後排座椅加熱、自適應遠近光、感應雨刷、自動泊車入位、自適應巡航、車道偏離預警和併線輔助,兩者在配置上的差異其實並不是很大,主要是因為最低配的MKX配置水平真心不低。

MKC和MKX的外觀內飾設計都非常相似,慶幸的是兩車都還沒有使用林肯MKZ的那個最新前臉設計,它們都很好的保留了林肯家族該有的美式設計美學,霸氣的中網和貫穿式的尾燈非常漂亮。

空間表現並不是它們的優勢,重點是MKC和MKX的內飾氛圍都非常豪華,僅看內飾的話,真的感覺不出MKC定位比MKX低,這就是消費者最喜歡的典型例子:花更少的錢得到更高級的視覺享受。

其實同品牌的雞頭鳳尾之選,還是有不少的,例如日產的軒逸和天籟,新款天籟的外觀設計真是佩服,相信有不少人把天籟硬生生看成軒逸,還有國內即將上市的寶馬5系,無論是設計元素還是各項配置,都在向著7系靠攏。

雖然說上面提到的在很多方面都向著大哥靠攏,但我們還是要理性對待,外觀內飾的設計,還有車輛的配置,這些都能夠做到互相媲美,但是在車輛的行駛品質,動態體驗方面,不同級別的車型還是存在着本質區別的,是否值得購買,就要看你注重車輛的是哪個方面了。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計最專業,超強功能平台可客製化

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家公司費用怎麼算?

這些國產“豪車”價錢可不豪,十幾萬就能考慮入手了!

觀致身處的這個惡性循環:產品力不足 → 經銷商加盟量少 → 銷量沒起色 → 成本居高不下 → 新產品性價比低 → 潛在經銷商更加望而卻步,如此循環。觀致在期待着一個救世主,挽救頹勢。觀致的全新跨界轎車觀致3 GT指導價為11。

稍有起色的自主車企都慢慢開始轉型,尋求向上發展,要涉足中高端路線,要麼推出高端化產品,要麼就再立門戶、開設新的子品牌來抗衡豐田、福特、大眾等一干合資大咖。

而成功“解決溫飽問題、活下來”的自主品牌,都基本具備了推出中高端品牌的造車技術經驗、品牌簇擁者以及市場營銷基礎,自下而上的往上發展亦無可厚非。

傳祺GM8

相比建立中高端子品牌,推出高端化產品來提升品牌形象的效果並沒有前者來得直接,前車之鑒就有行政級轎車東風A9、GA8,走越野路線的哈弗H9,地方補貼的新能源產物榮威E950,市場表現皆慘淡。當然也不乏市場熱烈的車型,吉利博瑞、傳祺GS8把准了時代的脈搏,一炮走紅,銷量當然理想。

更看好自主車企在推出高端化產品獲得成功后再去涉足中高端子品牌,循序漸進,遵循企業發展規律。期待廣汽傳祺今後能為我們繼續打造高端化產品(GA8、GS8、GM8三足鼎立),甚至乎帶來一個高端子品牌。

東風A9

傳祺GA8

哈弗H9

榮威e950

吉利博瑞

傳祺GS8

觀致可以說是該領域的先行者(紅旗打一開始就沒想過要走量、盈利,姑且不算),剛面世時,被外界大肆宣傳、捧得很高,但由於撿錯了敲門磚,觀致選擇以轎車作為第一款面向消費者的產品,而冷落了受眾面更廣的SUV,加上觀致3自身產品力不足、經銷商營銷不力以及售價偏高,導致最終無人問津、摔得很痛。

觀致5

但我們並不能單單隻看到觀致試水失敗這個表象,認為觀致更起到了帶頭作用,吹響了自主品牌走出國門、邁向高端的號角,一石激起千層浪,寶沃、吉利、長城等車企都紛紛覬覦這塊待開發的市場,哪怕它們選取的路徑、理念不同,但他們都為中華汽車製造業爭一口氣,擺脫以往廉價、低端的形象,從事汽車行業的甚是欣慰。

寶沃BX7

下面來為大家介紹自主高端品牌剛推出以及即將推出的量產車,一同拭目以待。

LYNK & CO

LYNK & CO的品牌發布會地點在德國柏林,現場充滿前衛、時尚元素。吉利集團高級設計副總裁彼得·霍布里,過往阿斯頓馬丁、捷豹、路虎和沃爾沃等品牌不少作品都出自他手,博瑞和博越皆由他帶領的設計團隊完成, LYNK & CO 01同樣如此。彼得·霍布里:“車型應當風格鮮明、引人注目,能夠吸引包括中國、歐洲和美國在內的全球消費者。”反正是被吸引住了。

分體式大燈組,LED光帶式日間行車燈,L形尾燈設計前瞻、個性,糅合到一起卻相當和諧,毫不違和,延伸至引擎蓋上的LED日間行車燈靈感源自北歐上空的極光,絢麗奪目,不得不感嘆設計團隊的功架。

相信這款車將來量產後會消化不少來自沃爾沃的技術,尤其在動力總成和主動安全技術方面。(需要指出的是,吉利僅僅是收購了沃爾沃乘用車,而不是指整個沃爾沃集團,扮演着控股的角色,並未達到為所欲為的地步。)

WEY

WEY:長城的高端品牌WEY就這樣低調、悄無聲息出現在我們眼前,相對LYNK & CO要低調,魏建軍講到的:“民營企業沒有後路才能發展”,表達了長城一往無前、決意要做出成績的堅定決心,決意破釜沉舟。

哈弗系列的動力和底盤總成缺乏新意,W01的底盤結構與哈弗H7十分相像,就連動力總成也是2.0T搭配7速雙離合變速箱。而W02的底盤則與哈弗H6相同。

W 01

W 02

核心三大件沒升級、行駛質感沒得到提升的話,再多的噱頭也只是徒勞,希望WEY最後出來的產品不會令失望。

觀致

奇瑞與以色列集團各持股50%的方式成立觀致,給觀致帶來一定的合資背景,但銷量始終不如人意,在歐洲銷售期間更是無人問津。觀致身處的這個惡性循環:產品力不足 → 經銷商加盟量少 → 銷量沒起色 → 成本居高不下 → 新產品性價比低 → 潛在經銷商更加望而卻步,如此循環。觀致在期待着一個救世主,挽救頹勢。

觀致的全新跨界轎車觀致3 GT指導價為11.09-13.99萬元。增加了一套跨界風格的車身套件,如前後的保險杠下護板、運動包圍、黑色輪眉,相信年輕人會對其青睞有加。

觀致3 GT採用1.6T發動機,最大功率為156ps,峰值扭矩230N·m,參數要比起轎車版要高點,匹配6速手動或6速雙離合變速箱。

希望觀致能推出更多競爭力強的產品去豐富產品線、整頓經營,力挽狂瀾。挫折並不像江河那樣不可逾越,而是前進的動力,觀致彆氣餒!

寶沃

寶沃BX5在2016年廣州車展正式亮相。寶沃BX5定位緊湊型SUV,長寬高分別是4483×1876×1677mm,軸距2685mm,在同級別車型中,它是屬於規格相對比較大的類型。

新車依舊採用寶沃家族式的多邊形格柵設計,后包圍的裝飾件帶有濃濃地運動氣息,寶沃這次將目標人群瞄準在年輕人。

寶沃BX5將提供1.4T混動和1.8T汽油發動機版本。1.8T發動機最大功率190ps,峰值扭矩280N·m,搭配6速手自一體變速箱,如無意外將會是BX7上那副AISIN愛信6AT。預計寶沃還將推出BX7 TS和BX6 TS,進一步豐富產品線,實現真正的品牌復興。

寶沃BX7 TS

左為寶沃BX6 TS,右為寶沃BX5

總結:很慶幸出生在這個時代,能見證着自主汽車的起步,在市場摸爬滾打,獨當一面再到後來往上發展,開拓高端品牌、突破自我,自豪感油然而生。但不少人卻對自主汽車嗤之以鼻,用他們有限的認知、先入為主地去詆毀它們,這是所不能接受的。

自主汽車目前所經歷的發展階段是一種歷史的必然,哪怕是鍵盤車神們跪舔的德系、日系亦同樣經歷過,給自主汽車更多耐心和鼓勵,它一定會用更多低價格、高品質、效費比更理想的產品來回報國民,證明我大中華也是汽車強國。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※超省錢租車方案

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

※推薦台中搬家公司優質服務,可到府估價

7.89萬起的SUV配置竟然這麼高,教授看好他的銷量喔!

新車落地時,可以在選配廠家幫你加裝的行車記錄儀,集合在駕駛艙的后視鏡裏面,通過中控台的按鍵,可以將畫面轉到這個9寸彩色大屏幕上,可以手動操作拍照和錄製功能,非常方便。除了最低配之外,其他配置都是真皮包裹座椅,高配則還有座椅加熱和電動調節功能,乘坐起來給人的感覺還可以,雖然不能說包裹性很強,但是舒適性還是夠的,至於後排空間,如果一個正常體型的180CM身高小伙子坐進去,大概腿部空間還能夠有近兩拳的距離。

自從上次發完森雅R7的產品介紹后,後台很多粉絲都在追問這車新搭載的自動擋究竟開起來怎麼樣,愛信的6AT是否能夠做到眾望所歸?諸如此類問題。沒錯,這一期將詳細地往“體驗”這方面,來講一講這台車,除了價格很實惠之外,是否真的能夠為我們帶來些什麼收穫?

森雅R7作為一汽的產品,在手動擋上市時,就已經有這3個亮點,一個是超高顏值,一個是同級中最長的軸距,最後一個則是越級的配置,定價便宜,非常符合三四線城市人們購車的需求,所以在當時就已經備受粉絲關注,然而這次自動擋6AT的到來,更為許多“不會開手動擋”的消費者解決了另一個難題。

貌似在中國,有着這麼一個不成文的規定,但凡是新車,首先一定要在外觀上足夠吸引人,才能稱為成功了一半,眾泰走抄襲之路贏得了群眾的眼球,陸風靠着路虎的外觀檔次一下高了不少,而作為一汽旗下的森雅R7,則靠着與眾不同的雄鷹外觀,也贏得了許多人的關注,大燈犀利,整個車頭看起來讓人有種舒服的感覺,腰線優雅,作為一款小型SUV,整體風格小巧儒雅。

全車前大燈都採用鹵素光源,但都帶有日間行車燈,視覺效果蠻不錯,17英寸鋁合金輪轂同樣為全系標配,加上紅色的剎車卡鉗,運動感一下子上來了,在之前,後台就有很多粉絲在評論說,車子顏值是不錯,不過可惜就可惜在車標上,但覺得現在自主品牌實力不斷地雄厚,只要車子質量好,車標改不改,都是事後的問題了,不必過於糾結。

其實買車群眾可以分為兩種人,一種是堅持買自主品牌車,一種是只考慮合資車,但你瞧我們自主品牌的內飾風格,不說那些抄襲寶馬奧迪內飾的其他牌子,就拿森雅R7的內飾作為例子,7.89萬自動擋版本,能夠有這種設計還是少有的,按鍵實在,使用起來非常簡單,屏幕也夠大,觸控反應靈敏。

除了自動舒適型之外,其他自動車型全配有真皮方向盤,ESp車身穩定系統,上坡輔助,定速巡航,多功能方向盤,發動機啟停裝置,頂配則多了全景攝像頭,雖然這些每次都會說,但有了就非常不同,買配置也是我們中國人選車所考慮的因素之一,凡是熱門的車,肯定有着一套非常齊整的配置,才能稱之為性價比高。

新車落地時,可以在選配廠家幫你加裝的行車記錄儀,集合在駕駛艙的后視鏡裏面,通過中控台的按鍵,可以將畫面轉到這個9寸彩色大屏幕上,可以手動操作拍照和錄製功能,非常方便。

除了最低配之外,其他配置都是真皮包裹座椅,高配則還有座椅加熱和電動調節功能,乘坐起來給人的感覺還可以,雖然不能說包裹性很強,但是舒適性還是夠的,至於後排空間,如果一個正常體型的180CM身高小伙子坐進去,大概腿部空間還能夠有近兩拳的距離。

先說說這台1.6L的自然吸氣發動機,技術是基於大眾EA系列發動機自主研發而成的,具有進氣側的可變氣門正時技術,最大功率116匹馬力,峰值扭矩155牛米,在城市中跟車行駛的話,搭配着油門踏板,初段給人的加速感還是有的,反應积極,匹配着日本愛信第三代6速手自一體變速器,加速感覺還是比較平順。

當繼續深踩油的時候,中後段的動力則有點力不從心了,但畢竟這是一台1.6L自然吸氣發動機,並沒有像其他發動機一樣有渦輪增壓器的介入,但1.6L自然吸氣+愛信成熟的6AT,可以很好地控制油耗表現。

在平時的道路上,這款自動變速箱在升擋的節奏上,還是能夠與我們駕駛員做到節奏一致的,而在上坡的時候,變速箱則退到低速擋,同時將發動機轉速升到3000左右,將這股力氣供給前輪,動力不會很突兀,高轉數難免發動機噪音會有一些,這是難免的,但在平時的駕駛中,經過隔音棉,噪音得到了挺好的控制,不會讓人感覺到這款國產車一加速就立馬掉檔次。

底盤懸架則採用前麥弗遜后扭力梁設計,這種設計無論是在這個價位,還是這個等級,都非常之常見,在行駛過程中,來自底盤的噪音並不大,減振器在濾振方面,確實挺到位,開起來確實還是有質感的,這種調校給人一種厚實的感覺。

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※回頭車貨運收費標準

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

Azure AD(四)知識補充-服務主體

一,引言

  又到了新的一周了,也到了我新的分享的時間了,還記得上一周立得Flag,其中 “保證每周輸出一篇文章” ,讓我特別“在意”(這裏用詞不太恰當)。主要是我的一個大學舍友,他突然問了我一個關於寫博的事情,自己也在上周開通了賬號,也想着堅持寫博客。在我看來,這確實是一件好事,寫博不僅僅是分享的過程;也是自己提煉寫博的一個過程,以及文章組織的能力,對自己還是很有好處的。這不僅僅要寫內容要精鍊,同時也要讓別人能看的懂。加油,默默的在這裏給他打氣。(ง •_•)ง

好了,開始今天的分析

————————————我是分割線————————————

  上一周有介紹到Azure AD資源託管標識的內容,其實就包括如何去操作開啟系統分配的託管標識,以及通過開啟託管標識,VM如何去訪問Azure 中的一些資源,如 “Key Vault” 等。今天去分析一波關於“Service Principal”(服務主體)。

二,正文

1,服務主體對象

  若要訪問受 Azure AD 租戶保護的資源,需要訪問的實體必須由安全主體來表示。 這同時適用於用戶(用戶主體)和應用程序(服務主體)。安全主體定義 Azure AD 租戶中用戶/應用程序的訪問策略和權限。 這樣便可實現核心功能,如在登錄時對用戶/應用程序進行身份驗證,在訪問資源時進行授權。當應用程序被授予了對租戶中資源的訪問權限時(根據註冊或許可),將創建一個服務主體對象。 Microsoft Graph ServicePrincipal 實體定義服務主體對象屬性的架構。

2,應用程序和服務主體的關係

可以將應用程序對象視為應用程序的全局表示形式(供所有租戶使用),將服務主體視為本地表示形式(在特定租戶中使用)。

應用程序對象用作模板,常見屬性和默認屬性從其中派生,以便在創建相應服務主體對象時使用。 因此,應用程序對象與軟件應用程序存在 1 對 1 關係,而與其對應的服務主體對象存在 1 對多關係。

必須在將使用應用程序的每個租戶中創建服務主體,讓它能夠建立用於登錄和/或訪問受租戶保護的資源的標識。 單租戶應用程序只有一個服務主體(在其宿主租戶中),在應用程序註冊期間創建並被允許使用。 多租戶 Web 應用程序/API 還會在租戶中的某個用戶已同意使用它的每個租戶中創建服務主體。

下圖演示了應用程序的應用程序對象和對應的服務主體對象之間的關係,其上下文是在名為 HR 應用的示例多租戶應用程序中。 此示例方案中有三個 Azure AD 租戶:

  • Adatum -開發HR 應用的公司使用的租戶
  • Contoso -contoso 組織使用的租戶,即HR 應用的使用者
  • Fabrikam -fabrikam 組織使用的租戶,它也使用HR 應用

在此示例方案中:

表 1

步驟 說明
1 是在應用程序的宿主租戶中創建應用程序對象和服務主體對象的過程。
2 當 Contoso 和 Fabrikam 的管理員完成同意並嚮應用程序授予訪問權限時,會在其公司的 Azure AD 租戶中創建服務主體對象,並向其分配管理員所授予的權限。 另請注意,HR 應用可能配置/設計為允許由用戶同意以供個人使用。
3 HR 應用程序的使用者租戶(例如 Contoso 和 Fabrikam)各有自己的服務主體對象。 每個對象代表其在運行時使用的應用程序實例,該實例受相關管理員同意的權限控制。

3,使用Azure CLI創建Azure服務主體(示例)

使用 az ad sp create-for-rbac 命令創建服務主體創建服務主體時,請選擇其使用的登錄身份驗證的類型。

 注意

如果您的帳戶無權創建服務主體,將返回一條錯誤消息,其中包含“權限不足,無法完成操作”。請與您的Azure Active Directory管理員聯繫以創建服務主體。

3.1,在 “azure portal” 中驗證當前的Azure訂閱

az account show

3.2,显示訂閱名稱ID值的列表

az account list --query "[].{name:name, subscriptionId:id}"

 

3.3,使用 az ad sp create-for-rbac 命令,將其替換<subscription_id>為要使用的訂閱帳戶的ID

az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<subscription_id>"

注意:我們將創建一個具有 “Contributor” (貢獻者角色:默認角色)的服務主體。該 “Contributor” 角色具有完全的權限讀取和寫入到Azure的賬戶,

成功完成后,該命令將显示幾個值,包括自動生成的密碼  

 

同時,我們可以在 “azure portal” 中可以找到對應的設置 選擇=》Azure Active Directory

 

點擊 “App registrations”

 

 同時,我們可以在當前訂閱下的 “IAM”中找到對應的角色訪問權限信息。當然了,上面我創建服務主體的時候給的 scope 是整個訂閱,也就是我們可以通過這個服務主體去訪問azure的任何資源。

例如 “azure devops Pipeline” 在CD的過程,需要配置 “Service Principal”

 

 例如使用Terraform 構建基礎架構資源的時候,需要配置 Service Principal

三,總結

  使用Azure服務的自動化工具應始終具有受限權限。Azure提供服務主體,而不是讓應用程序以完全特權用戶身份登錄。Azure服務主體是為與應用程序,託管服務和自動化工具一起使用而創建的身份,以訪問Azure資源。這種訪問受到分配給服務主體的角色的限制,使您可以控制可以訪問哪些資源以及可以訪問哪個級別。出於安全原因,始終建議將服務主體與自動化工具一起使用,而不是允許他們使用用戶身份登錄。

服務主體的默認角色是Contributor該角色具有讀取和寫入Azure帳戶的完整權限

參考資料:RBAC內置角色:https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

台中搬家公司費用怎麼算?

美國早產率隨高溫與空污攀升 非裔孕婦風險更高

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

墨西哥地震規模7.4釀5死 震央附近交通中斷傷亡恐增

摘錄自2020年6月24日中央社報導

墨西哥南部太平洋岸今(23日)發生規模7.4強震,造成至少5人喪生,偏遠村落交通中斷,地震威力之強,連遠在震央數百公里外的首都墨西哥市(Mexico City)都有建築物受損。

這起強震震央在瓦哈卡州(Oaxaca)附近,死傷也是在這裡傳出。由於州首府瓦哈卡市(Oaxaca)與海岸間的蜿蜒山路因落石中斷,搜救人員尚未抵達受災村落,傷亡可能更進一步攀升。

社群媒體影像顯示,震央附近山村的診所與老舊教堂也都嚴重受損。

美國地質調查所(USGS)表示,這起地震震源深度僅26公里,屬淺層地震。美國地質調查所初步測得規模達7.7,稍後下修為7.4。

土地水文
土地利用
國際新聞
墨西哥
地震
災害

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計最專業,超強功能平台可客製化

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家公司費用怎麼算?