❶ 為什麼微信開發,小程序開發,很多都用php,比如微擎,小豬cms
在中國,PHP在微信開發、小程序開發領域很受歡迎,例如微擎、小豬CMS等。原因在於多數國內開發者水平和框架技術水平處於中等偏下。然而,中等偏下水平開發者在實際應用中卻能產生生態效應。如果換用其他技術,可能許多開發者難以上手。比如我司微星極光旗下的產品,如大鬼圖文助手、大鬼關鍵詞助手、大鬼二維碼助手、定時激活寶等,這些軟體用Go語言編寫。由於國內Golang開發者不多,許多開發者對此技術了解甚少。
在金融保險行業,我們曾有客戶堅持使用自己的伺服器部署系統。盡管我們建議使用SaSS第三方平台,受騰訊監管,配置簡單快捷,年費用僅2千左右,但他們仍堅持購買微星極光全套代碼獨立安裝版,花費約8萬。然而,技術團隊在使用過程中發現,添加新功能遇到困難,顯得十分尷尬。
使用Go語言的開發者可以為這部分企業提供技術支持,解決代碼開發和維護問題。由於Go語言可以只出售二進制文件,無需擔心代碼版權問題。這在企業獨立部署場景下具有優勢。對於有這方面需求的企業,歡迎聯系我司獲取相關服務。
❷ 女生軟體測試,可以轉行做什麼
如果你現在正在做軟體測試,想轉行建議您這邊去轉行Web前端開發
從事前端開發需要掌握
(1)編程語言:前端需要掌握HTML,CSS,JavaScript;後端需要掌握PHP,Python,SQL,Java,Ruby,.NET,Perl
(2)框架:前端需要掌握Angular.JS,React.JS,Backbone.JS,Vue.JS,Sass,Ember.JS,NPM Laravel,Cake;後端需要掌握PHP,Express,CodeIgniter,Ruby on Rails,Pylon,ASP.NET
(3)資料庫:前端需要掌握Local Storage, Core Data, SQLite, Cookies, Sessions;後端需要掌握MySQL,Casandra,Postgre SQL,MongoDB,Oracle,Sybase,SQL Server
(4)伺服器:後端需要掌握Ubuntu,Apache,Nginx,Linux,Windows,前端對伺服器要求不高。
除了以上幾方面的不同,前端還需要掌握AJAX,AMP,Atom,Babel,BEM,Blaze,Bourbon,Broccoli,Dojo,Flux,GraphQL,Gulp,Polymer,Socket.IO,Sublime Text等知識。
❸ less以及sass兩者什麼區別
事實證明,LESS——以及Sass——功能比這個要多太多。LESS和Sass在語法上有些共性,比如下面這些:
● 混入(Mixins)——class中的class;
● 參數混入——可以傳遞參數的class,就像函數一樣;
● 嵌套規則——Class中嵌套class,從而減少重復的代碼;
● 運算——CSS中用上數學;
● 顏色功能——可以編輯顏色;
● 名字空間(namespace)——分組樣式,從而可以被調用;
● 作用域——局部修改樣式;
● JavaScript 賦值——在CSS中使用JavaScript表達式賦值。
LESS和Sass的主要不同就是他們的實現方式,LESSS是基於JavaScript,所以,是在客戶端處理的。
另一方面,Sass是基於Ruby的,然後是在伺服器端處理的。很多開發者不會選擇LESS因為JavaScript引擎需要額外的時間來處理代碼然後輸出修改過的CSS到瀏覽器。關於這個有很多種方式,我選擇的是只在開發環節使用LESS。一旦我完成了開發,我就復制然後粘貼LESS輸出的到一個壓縮器,然後到一個單獨的CSS文件來替代LESS文件。另一個選擇是使用LESS.app來編譯和壓縮你的LESS文件。兩個選擇都將最小化你的樣式輸出,從而避免由於用戶的瀏覽器不支持JavaScript而可能引起的任何問題。盡管這不大可能,但終歸是有可能的。
關於變數在LESS和Sass中的唯一區別就是,LESS用@,Sass用$。同時還有一些作用域上的差別,我後面會提到。
混入(mixin)
偶爾,我們會創建一些會在樣式表中重復使用的樣式規則。沒有人會阻止你在一個HTML的元素中使用多個class,但是你可以用LESS,在樣式表中完成。
.border {
border-top: 1px dotted #333;
}
article.post {
background: #eee;
.border;
}
ul.menu {
background: #ccc;
.border;
}
這可以給到你與你在兩個元素中分別添加.bordered class同樣的效果——而且僅僅在樣式表中就完成了。而且它工作的很好:
文字和無序列表都被用上了邊框樣式
在Sass中,你要在樣式規則前面添加@mixin聲明,規定它是個嵌套。然後,通過@include來調用它。
@mixin border {
border-top: 1px dotted #333;
}
article.post {
background: #eee;
@include border;
}
ul.menu {
background: #ccc;
@include border;
}
參數混入
就像在CSS中有函數功能一樣,這些對於那些在現在的CSS工作中多餘的工作非常有用。最好和最有用的例子就是我們正在經歷的從CSS2到CSS3過渡過程中的很多瀏覽器私有前綴。Nettuts+有一篇Jeffrey Way寫的很贊的視頻和文章,內容是包含著由有用的參數組成的文件,他們涵蓋了大部分使用各個瀏覽器私有前綴的CSS3屬性。
.border-radius( @radius: 3px ) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
在這個例子中,.border-radius有個默認的3px的圓角,但是你可以使用你需要的任何值。.border-radius(10px)將會生成半徑為10px的圓角。
Sass中的語法很像LESS,只是使用$聲明變數,然後使用前面提到的@mixin和@include來調用。
選擇器繼承
這個東西LESS並沒有提供。通過這個功能,你可以將一個選擇器附加到已經預先定義的選擇器上,而無需再使用逗號將兩者分開的寫法了。
.menu {
border: 1px solid #ddd;
}
.footer {
@extend .menu;
}
/* 上面的寫法規則和下面的效果是一樣的: */
.menu, .footer {
border: 1px solid #ddd;
}
嵌套規則
在css中嵌套class和ID是避免你的樣式干擾或者被別的樣式干擾的唯一方法了。但是這可能會很凌亂。使用一個類似於#site-body .post .post-header h2 的選擇器毫無吸引力而且會佔用大量不必要的空格。使用LESS,你可以嵌套id、class以及標簽。
#site-body { …
.post { …
.post-header { …
h2 { … }
a { …
&:visited { … }
&:hover { … }
}
}
}
}
上面的代碼最終和上面的例子(那一長串的選擇器)的效果一樣,但是要更容易閱讀和理解的多,而且它佔用很少的空間。你也可以通過&來引用元素樣式到他們的偽元素上,該功能類似於JavaScript中的this。
運算
這可能是你所期望的:使用數字或者變數在你的樣式表中實現數學運算!
@base_margin: 10px;
@double_margin: @base_margin * 2;
@full_page: 960px;
@half_page: @full_page / 2;
@quarter_page: (@full_page / 2) / 2;
聲明下,我也意識到我可以除以4來獲得@quarter_page變數,但是這里我只是想要演示下圓括弧組成「運算順序」在這里也是可以用的。在使用簡寫的規則中,小括弧也是必須的,比如 border: (@width / 2) solid #000。
Sass在數字上比LESS更專業。它已經可以換算單位了。Sass可以處理無法識別的度量單位並將其輸出。這個特性很明顯是一個對未來的嘗試——證明W3C作出的一些改變。
/* Sass */
2in + 3cm + 2pc = 3.514in
/* LESS */
2in + 3cm + 2pc = Error
Color函數
在文章開頭,我提到了LESS如何幫我在編碼過程中處理圍繞著一個調色板。對此貢獻最大的一部分就是顏色函數。加入你用一個標準的藍色貫穿到你的樣式中,然後你想要在表單中用這個藍色來做一個漸變的按鈕。你可以打開Photoshop或者其它的編輯器來獲取一個比藍色較淺的或者較暗的HEX色值來作為漸變色。或者,你可以只是使用LESS中的顏色函數。
@blue: #369;
.submit {
padding: 5px 10px;
border: 1px solid @blue;
background: -moz-linear-gradient(top, lighten(@blue, 10%), @blue 100%); /*Moz*/
background: -webkit-gradient(linear, center top, center bottom, from(lighten(@blue, 10%)), color-stop(100%, @blue)); /*Webkit*/
background: -o-linear-gradient(top, lighten(@blue, 10%) 0%, @blue 100%);/*Opera*/
background: -ms-linear-gradient(top, lighten(@blue, 10%) 0%, @blue 100%); /*IE 10+*/
background: linear-gradient(top, lighten(@blue, 10%) 0%, @blue 100%); /*W3C*/
color: #fff;
text-shadow: 0 -1px 1px rgba(0,0,0,0.4);
}
lighten函數很明顯就是用百分比值來減輕顏色,在這個例子中,它將減輕這個基礎的藍色的10%。這種方法可以讓我們變化的元素或者其它任何元素的顏色值——只是簡單的改變基礎顏色而已。這對於主題(模板)來說非常有用。而且,如果你使用參數功能,像上面提到的,你還可以更簡單的應用到一些瀏覽器私有前綴的聲明中,比如:.linear-gradient(lighten(@blue), @blue, 100%);。
還有很多其它的色彩函數,比如變暗或者調整顏色的飽和度,甚至你可以旋轉色盤來使用其它顏色。我建議親自嘗試下你能想出的(用法)。
Sass貌似有更多的選項——但我並不需要這么多。我個人最常用的還是lighten和darken。如果你想了解更多,可以看一下這篇很詳細的介紹。
條件語句與控制
這是一個的確很贊的東東,也是另一個LESS不支持的功能。使用 Sass,你可以使用if { } else { } 條件語句,以及for { }循環。它甚至支持 and、 or和 not,以及 <、 >、 <=、 >= 和 == 等操作符。
/* Sample Sass "if" statement */
@if lightness($color) > 30% {
background-color: #000;
} @else {
}
/* Sample Sass "for" loop */
@for $i from 1px to 10px {
.border-#{i} {
border: $i solid blue;
}
}
名字空間(Namespaces)
名字空間可以用於組織我們的CSS到另一個檔次,我們可以將一些公用的樣式分組,然後在用的時候直接使用。例如,如果我們創建了一個名為default的樣式分組,我們就可以在用到的時候直接從該組中調用。
#defaults {
.nav_list () {
list-style: none;
margin: 0; padding: 0;
}
.button () { … }
.quote () { … }
}
然後,在我們的代碼中,如果我們正好在一個nav元素中使用了ul元素,我們就會想到我們需要default樣式。那麼我們就可以簡單的調用它,它也會被直接應用。
nav ul {
#defaults > .nav_list;
}
作用域
作用域是編程中的標配,LESS中也是。如果你在你樣式表的root級聲明一個變數,它在整個文檔中都是可以用的。然而,如果你在一個選擇器,比如id或者class中,重新定義了這個變數,那麼,它就只能在這個選擇器中可用了——當然是重新定義後的新值。
@color: #00c; /* 藍色 */
#header {
@color: #c00; /* red */
border: 1px solid @color; /* 紅色邊框 */
}
#footer {
border: 1px solid @color; /* 藍色邊框 */
}
因為我們在#header中重新定義了color變數,變數的值將會是不同的而且只會在該選擇器中有效。它之前或者之後的所有地方,如果沒有被重新定義,都會保持那個原始的值。
作用域在Sass中稍有不同。在上面的代碼中,當@color變數變為紅色後,代碼中,此處之後的該變數的值,將會被重寫(成為紅色)。
注釋
這一部分比較基礎。LESS中允許兩種注釋寫法。標準的CSS注釋,/* comment */,是有效的,而且能夠通過處理並正確輸出。當行注釋,// comment,同樣可以用但是不能夠通過處理也不能被輸出,然後,結果是,「無聲的」。
導入
導入也相當符合標准。標準的 @import: 『classes.less』; 處理的很好。然而,如果你想要導入其它的LESS文件,那麼文件的擴展名是可選的,所以 @import 『classes』; 也是可行的。如果你想要導入一些無需LESS處理的內容,你可以使用 .css 擴展 (比如, @import: 『reset.css』;)。
字元串插入
字元串也是可以用於變數中的,然後通過@{name}來調用。
@base_url : 'http://www.qianan.net';
background-image: url("@{base_url}/images/background.png");
轉義(Escaping)
可能偶爾會需要引入一個CSS中非法或者LESS無法識別的值。通常是一些IE的hack。要避免拋出異常並破壞LESS,你將需要避開它們。
.class {
filter: ~"progid:DXImageTransform.Microsoft.Alpha(opacity=20)";
}
/*實際上將會輸出下面的代碼: */
.class {
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20);
}
JavaScript 賦值
這是LESS中我最中意的部分:在樣式表中使用Javascript——相當精彩。你可以使用表達式,也可以參考環境方向來使用反單引號。
@string: `'howdy'.toUpperCase()`; /* @string 變成 'HOWDY' */
/* 你也可以使用前面提到的插值: */
@string: 'howdy';
@var: ~`'@{string}'.topUpperCase()`; /* 變為 'HOWDY' */
/* 獲取文檔的信息 */
@height = `document.body.clientHeight`;
輸出格式
然而LESS並沒有輸出設置,而Sass提供4中輸出選項:nested, compact, compressed 和 expanded。
結語
這兩個方法有很多共同點。對寫代碼的設計師來說,它們都是很酷的工具,它們也可以幫助開發者更有效和快速的工作。如果你是Ruby或HTML的粉絲,那麼Sass會是你的好助手。對我來說,一個PHP和JavaScript極客,我傾向於LESS,因為它便於引入和能夠使用JavaScript的表達式以及文檔屬性。我懷疑我甚至接近真正理解在樣式表中編程的可能行了,但是我仍堅持嘗試。如果你在工作中有用到它們中的一個,或者兩個都用,我很樂意聽到關於它的更多內容,並看到你的成果。當然,技巧、訣竅、更正一直是很歡迎的。
❹ vs支持哪些編程語言
編程語言分為機器語言,匯編語言,高級語言下面介紹一下這三大類語言(由於高級語言的種類較多,主要介紹高級語言,另外我們編程時也主要用高級語言)
❺ 實用的15款開源PHP類庫
PHP庫給開發者提供了一個標准介面 它幫助開發者在PHP里充分利用面向對象編程 這些庫為特定類型的內置功能提供了一個標準的API 允許類可以與PHP引擎進行無縫的交互 此外 開發者使用這些類庫還可以簡化工作流程 提供工作效率
下面就一起來看看這些非常實用且免費的類庫吧 希望它們能助你一臂之力
Requests
Requests是一個用PHP編寫的HTTP庫 遵循ISC開源協議 託管在GitHub上 Requests取代了Python HTTP/ 以外的一切工作———讓你與Web服務可以無縫的結合
Requests提供了一致的API 並且使用cURL或fsockopen(具體取決於可用性) 它還簡化了發送請求 接受HEAD GET POST PUT DELETE或PATCH並且添加標頭 表單數據和多個部分組成的文件 其次 該庫還適用於國際域名 身份驗證 自動壓縮gzip壓縮響應等 綜上所述可以看出 Requests是一個非常好用且可以友好託管HTTP請求的標簽
Munee
Munee是一個集圖片尺寸調整 CSS JS合並/壓縮 緩存等功能於一身的PHP庫 可以在伺服器端和客戶端緩存資源 它集成了PHP圖片操作庫Imagine來實現圖片尺寸調整和剪切 之後進行緩存
Munee可以自動編譯LESS SCSS和CoffeeScript 並且可以把CSS+JS文件合並成一個單一的請求 此外 還可以對這些CSS JS文件進行精縮 讓其擁有更好的性能表現 該庫還可以輕易地與任何代碼集成
Ratchet
Ratchet是一個PHP庫 WebSockets工具包 開發者可以使用它在客戶端和伺服器端之間構建實時 雙向的App應用 並且可以快速簡單地構建事件驅動應用程序(而不是傳統的HTTP 請求/響應應用程序)
Swift Mailer
Swift Mailer是一個功能豐富的PHP郵件庫 不依賴於PHP自帶的mail() 函數 因為該函數在發送多個郵件時佔用的系統資源很高 Swift直接與SMTP伺服器通訊 具有非常高的發送速度和效率
Unirest
Unirest是一個輕量級的HTTP開發庫 可用於PHP Ruby Python Java Objective C等開發語言 支持GET POST PUT UPDATE DELETE操作 它的調用方法與返回結果對所有開發語言來說 都是相同的
Detector
Detector是一個開源的PHP類庫 用於檢測用戶的瀏覽器環境 它可以獲得瀏覽器的使用情況和瀏覽器的HTML CSS 功能 並分析是否是移動 平板電腦 桌面或網頁爬蟲和其他項 如 顏色深度 視頻尺寸 Cookie等 該庫對每個瀏覽器用戶都使用單一的用戶代理字元串來自動適應新瀏覽器 版本和設備
PHP Thumb
PHP Thumb是一個PHP類 用來生成圖片的縮略圖 只需數行代碼即可 支持多種圖片來源 包括文件系統或者資料庫 支持大多數圖片格式 並可對圖片進行旋轉 剪切 加水印等等 可自定義縮略圖的質量 提供內建的緩存以降低伺服器的負載
Zebra Image
Zebra Image是一個開源的輕量級圖像處理庫 並且是一款面向對象庫 只需PHP GD 擴展 並支持縮放 裁剪 旋轉和翻轉操作 它可以用於 jpg gif png等格式
Hybrid Auth
HybridAuth是一個開源PHP類庫 用於通過微博/社交網站和ID來提供驗證功能實現同步登錄網站功能 它能夠很方便的與現有網站相集成 只要引用一個文件並添加幾行代碼就能夠實現登錄 一旦驗證 HybridAuth會提供連接用戶的標准化相關資料 此外 除了驗證功能 這個類庫能夠讓我們與用戶連接的social API客戶端相交互
Gantt Charts
Gantti是一個開源的PHP類 幫助用戶即時生成Gantt圖表 使用Gantti創建圖表無需使用JavaScript 是純HTML CSS 圖表默認輸出非常漂亮 但用戶可以自定義樣式進行輸出(SASS樣式表)
Mobile Detect
Mobile Detect是一個PHP類 通過User Agent檢測各種手機設備 並結合HTTP Header來檢測移動設備環境 該類庫最強大的地方是 它有一個非常完整的庫 可以檢測出所用的設備類型(包括操作類型 以及手機品牌等都能檢測)和瀏覽器的詳細信息
ImageWorkshop
顧名思義 ImageWorkshop是一個管理和操作圖片的PHP類庫 這個類擁有類似圖片編輯軟體的邏輯 基於層的概念 可以疊加很多層或層組(每一層不同的操縱選項) 它還支持許多功能 比如水印 裁剪 移動 縮放 旋轉 疊加等
JqmPhp
JqmPhp是一個PHP開源類庫 旨在簡化jQuery與PHP來進行移動開發 用於生成使用jQuery Mobile框架所需要的HTML文件 該類庫的文件是獨立的 所以你可以根據需要來選擇使用
PHP Image Cache
Image Cache是一個輕量級的PHP類 可以在用戶瀏覽器里壓縮 移動 緩存圖片 這個類提供一些簡單的設置如 目錄 根路徑URL等 然後針對每一張圖片調用壓縮功能
Imagine
Imagine是一個面向對象的PHP類庫 用於圖片操作 這個類庫能夠處理一些經常用到的操作如 縮放 裁剪 應用過濾等 其Color類庫可用於對任意特定的顏色生成RGB值 並且還提供一些方法來繪制圖形如 圓弧 橢圓 線 片等
lishixin/Article/program/PHP/201404/30630