問題System.Net.Mail下的SmtpClient來發(fā)送郵件,而System.Net.Mail only僅支持Explicit SSL
不要465端口,用25,不用EnableSsl = true;
{
static void Main(string[] args)
{
SmtpClient client = new SmtpClient();
client.Host = "smtp.exmail.qq.com";
client.Port = 25;
// client.Port = 465;
// client.EnableSsl = true;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("test@ms.com", "1234567890");
MailMessage mm = new MailMessage("test@ms.com", "user1@ms.com", "test", "test");
mm.BodyEncoding = UTF8Encoding.UTF8;
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
client.Send(mm);
}
}
最后在配置TFS郵件通知設置的時候端口改用25,不選擇SSL,順利解決問題。
SmtpClient發(fā)送郵件超時的異常參考:
了解更多
有時候會有一些站點內容,不希望被ROBOTS抓取而公開。為了解決這個問題,ROBOTS開發(fā)界提供了兩個辦法:一個是robots.txt,另一個是The Robots META標簽。
1,<meta name="Robots" contect="all|none|index|noindex|follow|nofollow"> 默認是all
其中的屬性說明如下:
設定為all:文件將被檢索,且頁面上的鏈接可以被查詢;
設定為none:文件將不被檢索,且頁面上的鏈接不可以被查詢;
設定為index:文件將被檢索;
設定為follow:頁面上的鏈接可以被查詢;
設定為noindex:文件將不被檢索,但頁面上的鏈接可以被查詢;
設定為nofollow:文件將不被檢索,頁面上的鏈接可以被查詢。
2,revisit-after (重訪)
<META name="revisit-after" CONTENT="7 days" >
通知搜索引擎多少天訪問一次
其他的:
<META NAME="GENERATOR" CONTENT="Macromedia Dreamweaver MX">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<Meta http-equiv="Content-Language" Content="zh-CN">
<Meta http-equiv="Refresh" Content="5; Url=http://hi.baidu.com/pihi">
<Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT">
<meta http-equiv="cache-control" content="no-cache">
<META name="keywords" content="關鍵字">
<meta name="description" content="描述">
<meta name="author" content="作者">
<meta name="build" content="日期">
<meta name="coprright" content="版權">
<meta name="reply-to" content="email">
<meta name="robots" content="all">
<meta http-equiv="Page-Enter" content="RevealTrans (Duration=3, Transition=23)">
<meta http-equiv="Page-Exit" content="RevealTrans (Duration=3, Transition=23)">
<link rel="shortcut icon" href="favicon.ico">
------------------------------------------------------------------------------------------------------------
meta標簽分兩大部分:HTTP標題信息(HTTP-EQUIV)和頁面描述信息(NAME)。
1、Content-Type和Content-Language (顯示字符集的設定)
說明:設定頁面使用的字符集,用以說明主頁制作所使用的文字已經語言,瀏覽器會根據此來調用相應的字符集顯示page內容。
注意: 該meta標簽定義了HTML頁面所使用的字符集為GB2132,就是國標漢字碼。如果將其中的“charset=GB2312”替換成“BIG5”,則該頁面所用的字符集就是繁體中文Big5碼。當你瀏覽一些國外的站點時,IE瀏覽器會提示你要正確顯示該頁面需要下載xx語支持。這個功能就是通過讀取HTML頁面Meta標簽的Content-Type屬性而得知需要使用哪種字符集顯示該頁面的。如果系統里沒有裝相應的字符集,則IE就提示下載。其他的語言也對應不同的charset,比如日文的字符集是“iso-2022-jp ”,韓文的是“ks_c_5601”。
Charset選項:ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii, x-mac-roman, iso-8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw, x-cns11643-1,x-cns11643-2等字符集;Content-Language的Content還可以是:EN、FR等語言代碼。
2、Refresh (刷新)
3、Expires (期限)
說明:指定網頁在緩存中的過期時間,一旦網頁過期,必須到服務器上重新調閱。
注意:必須使用GMT的時間格式,或直接設為0(數字表示多少時間后過期)。
4、Pragma (cach模式)
說明:禁止瀏覽器從本地機的緩存中調閱頁面內容。
注意:網頁不保存在緩存中,每次訪問都刷新頁面。這樣設定,訪問者將無法脫機瀏覽。
5、Set-Cookie (cookie設定)
說明:瀏覽器訪問某個頁面時會將它存在緩存中,下次再次訪問時就可從緩存中讀取,以提高速度。當你希望訪問者每次都刷新你廣告的圖標,或每次都刷新你的計數器,就要禁用緩存了。通常HTML文件沒有必要禁用緩存,對于ASP等頁面,就可以使用禁用緩存,因為每次看到的頁面都是在服務器動態(tài)生成的,緩存就失去意義。如果網頁過期,那么存盤的cookie將被刪除。
用法:<Meta http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday, 21-Oct-98 16:14:21 GMT; path=/">
注意:必須使用GMT的時間格式。
6、Window-target (顯示窗口的設定)
說明:強制頁面在當前窗口以獨立頁面顯示。
用法:<Meta http-equiv="Widow-target" Content="_top">
注意:這個屬性是用來防止別人在框架里調用你的頁面。Content選項:_blank、_top、_self、_parent。
7、Pics-label (網頁RSAC等級評定)
說明:在IE的Internet選項中有一項內容設置,可以防止瀏覽一些受限制的網站,而網站的限制級
別就是通過該參數來設置的。
用法:<META http-equiv="Pics-label" Contect=
"(PICS-1.1'http://www.rsac.org/ratingsv01.html'
I gen comment 'RSACi North America Sever' by 'inet@microsoft.com'
for 'http://www.microsoft.com' on '1997.06.30T14:21-0500' r(n0 s0 v0 l0))">
注意:不要將級別設置的太高。RSAC的評估系統提供了一種用來評價Web站點內容的標準。用戶可以設置Microsoft Internet Explorer(IE3.0以上)來排除包含有色情和暴力內容的站點。上面這個例子中的HTML取自Microsoft的主頁。代碼中的(n 0 s 0 v 0 l 0)表示該站點不包含不健康內容。級別的評定是由RSAC,即美國娛樂委員會的評級機構評定的,如果你想進一步了解RSAC評估系統的等級內容,或者你需要評價自己的網站,可以訪問RSAC的站點:http://www.rsac.org/。
8、Page-Enter、Page-Exit (進入與退出)
說明:這個是頁面被載入和調出時的一些特效。
用法:<Meta http-equiv="Page-Enter" Content="blendTrans(Duration=0.5)">
<Meta http-equiv="Page-Exit" Content="blendTrans(Duration=0.5)">
注意:blendTrans是動態(tài)濾鏡的一種,產生漸隱效果。另一種動態(tài)濾鏡RevealTrans也可以用于頁面進入與退出效果:
<Meta http-equiv="Page-Enter" Content="revealTrans(duration=x, transition=y)">
<Meta http-equiv="Page-Exit" Content="revealTrans(duration=x, transition=y)">
Duration 表示濾鏡特效的持續(xù)時間(單位:秒)
Transition 濾鏡類型。表示使用哪種特效,取值為0-23。
0 矩形縮小
1 矩形擴大
2 圓形縮小
3 圓形擴大
4 下到上刷新
5 上到下刷新
6 左到右刷新
7 右到左刷新
8 豎百葉窗
9 橫百葉窗
10 錯位橫百葉窗
11 錯位豎百葉窗
12 點擴散
13 左右到中間刷新
14 中間到左右刷新
15 中間到上下
16 上下到中間
17 右下到左上
18 右上到左下
19 左上到右下
20 左下到右上
21 橫條
22 豎條
23 以上22種隨機選擇一種
9、MSThemeCompatible (XP主題)
說明:是否在IE中關閉 xp 的主題
用法:<Meta http-equiv="MSThemeCompatible" Content="Yes">
注意:關閉 xp 的藍色立體按鈕系統顯示樣式,從而和win2k 很象。
10、IE6 (頁面生成器)
說明:頁面生成器generator,是ie6
用法:<Meta http-equiv="IE6" Content="Generator">
注意:用什么東西做的,類似商品出廠廠商。
11、Content-Script-Type (腳本相關)
說明:這是近來W3C的規(guī)范,指明頁面中腳本的類型。
用法:<Meta http-equiv="Content-Script-Type" Content="text/javascript">
★NAME變量
name是描述網頁的,對應于Content(網頁內容),以便于搜索引擎機器人查找、分類(目前幾乎所有的搜索引擎都使用網上機器人自動查找meta值來給網頁分類)。
name的value值(name="")指定所提供信息的類型。有些值是已經定義好的。例如description(說明)、keyword(關鍵字)、refresh(刷新)等。還可以指定其他任意值,如:creationdate(創(chuàng)建日期) 、
document ID(文檔編號)和level(等級)等。
name的content指定實際內容。如:如果指定level(等級)為value(值),則Content可能是beginner(初級)、intermediate(中級)、advanced(高級)。
1、Keywords (關鍵字)
說明:為搜索引擎提供的關鍵字列表
用法:<Meta name="Keywords" Content="關鍵詞1,關鍵詞2,關鍵詞3,關鍵詞4,……">
注意:各關鍵詞間用英文逗號“,”隔開。META的通常用處是指定搜索引擎用來提高搜索質量的關鍵詞。當數個META元素提供文檔語言從屬信息時,搜索引擎會使用lang特性來過濾并通過用戶的語言優(yōu)先參照來顯示搜索結果。例如:
<Meta name="Kyewords" Lang="EN" Content="vacation,greece,sunshine">
<Meta name="Kyewords" Lang="FR" Content="vacances,grè:ce,soleil">
列舉出幾個重要關鍵詞即可,也不可過分堆砌。
2、Description (簡介)
說明:Description用來告訴搜索引擎你的網站主要內容。
用法:<Meta name="Description" Content="你網頁的簡述">
注意: 把網頁內容高度概括到這里,長度要合理,不可過分堆砌關鍵詞,每個頁面description要有所不同。
3、Robots (機器人向導)
說明:Robots用來告訴搜索機器人哪些頁面需要索引,哪些頁面不需要索引。Content的參數有all、none、index、noindex、follow、nofollow。默認是all。
用法:<Meta name="Robots" Content="All|None|Index|Noindex|Follow|Nofollow">
注意:許多搜索引擎都通過放出robot/spider搜索來登錄網站,這些robot/spider就要用到meta元素的一些特性來決定怎樣登錄。
all:文件將被檢索,且頁面上的鏈接可以被查詢;
none:文件將不被檢索,且頁面上的鏈接不可以被查詢;(和 "noindex, no follow" 起相同作用)
index:文件將被檢索;(讓robot/spider登錄)
follow:頁面上的鏈接可以被查詢;
noindex:文件將不被檢索,但頁面上的鏈接可以被查詢;(不讓robot/spider登錄)
nofollow:文件將不被檢索,頁面上的鏈接可以被查詢。(不讓robot/spider順著此頁的連接往下探找)
4、Author (作者)
說明:標注網頁的作者或制作組
用法:<Meta name="Author" Content="張三,abc@sina.com">
注意:Content可以是:你或你的制作組的名字,或Email
5、Copyright (版權)
說明:標注版權
用法:<Meta name="Copyright" Content="本頁版權歸Zerospace所有。All Rights Reserved">
注意:
6、Generator (編輯器)
說明:編輯器的說明
用法:<Meta name="Generator" Content="PCDATA|FrontPage|">
注意:Content="你所用編輯器"
7、revisit-after (重訪)
說明:
用法:<META name="revisit-after" CONTENT="7 days" >
作為PM,有時需要招聘軟件開發(fā)人員。這幾年也一直在想,如何能在短短的30分鐘或1小時內,快速識別出,坐在你對面的應聘人員,是否適合你的Team。這幾年也一直在觀察和反思,經歷過的Team和現在Team中的軟件開發(fā)人員。有幾點小的心得。
1. 傾向于招什么樣的軟件開發(fā)人員
- 經歷過歷練的人
吃過苦的,比如以前工作,經常被外派出差,又如曾在業(yè)內都知道以加班多而著稱的公司呆過,還有些,留過學,但都是自己邊打工邊讀書的,等等。
這些人員,入職后,通常都是能干活,能作為骨干。
- 思路清晰,思想活躍的人
讓談談自己現在的產品,如果能清晰表述,有條理,會發(fā)散,但又能適當控制住,并收回到原話題。談到技術問題和解決過的難題時,眼中有光芒:)
這些人員,今后工作中,學習能力強,對解決難題有幫助,能作為中堅。
- 坦誠、堅定、平和的人
面試中,坦誠,目光堅定。有時坦誠到甚至于顯得有點木訥:)
我曾經遇到一個,面試下來,我最后介紹我們產品中用到的技術,他對這些技術知之不多,最后他說,“我可能不是非常適合,我知道一個朋友,他可能更適合?!蔽揖C合評估后,最后還是選了他,事實證明,他后來做的很不錯。
坦誠堅定的人,會有恒心去學習,去解決問題。這些人員會作為Team的基石。
- 有缺陷的人才
這是一個朋友(Lance)的想法,我認為還是有道理的。
大公司,會看重綜合素質,而如果是小公司,可以考慮選擇一些有缺陷的人才。所謂有缺陷,是指,比如他英語很差,或溝通不清晰,但他能用程序員該有的思維去思考問題。這樣的人員,通常進不了大公司,故會相對踏實地呆在一家公司,做好自己的工作。
2. 謹慎考慮這樣的開發(fā)人員
- 太活潑,太易興奮
太易興奮,說到投機處,“是是是是,對對對對。。?!?,又蹦又跳,還時不時來點,“Oh yeah, you are right“,然后還擺個 V 手型。討論問題,不易固守在技術問題本身,時常跑到“我們產品中用到的技術(或第3方產品)很強,我挺他們,不可能有問題”,又或者“我們對客戶要強勢,我們要堅持我們的產品沒問題"。
軟件開發(fā)工作本身,顯得比較沉悶,優(yōu)秀的技術人員,都略顯有些內向,因為解決問題,很多時候需要耐得住寂寞,時刻保持相對冷靜。
太活潑的人,會在遇到問題之初,表現出很強的沖勁,但當長時間不能解決時,會表現出沒有耐心,會經常抱怨(對Team、管理、產品、流程等),非常情緒化。有些女程序員還會吵,會哭,這時項目經理只能放下手中的活,下去給她買點零食來哄哄,“莫哭,這里有你最愛吃的貓哆哩?!币贿叢林翘?、眼淚,一邊嘴里塞滿東西,鼓鼓啷啷“這是酸角口味的,那個西番蓮口味的才叫好吃..."
這些通常不太容易在面試時表現出來,在試用期時,要觀察。
- 家境太好的人
家境好,可能沒吃過什么苦,抗壓差,并不太容易珍惜這份工作。工作強度不大時,還好。遇到技術難題、項目進度緊、壓力大時,這些人員,可能會表現出不易妥協,難于溝通,”我反正也不在乎這么一個工作。。。我工作不工作都可以,有什么大不了“。
我Team中曾經有這樣一個”富2代“,干了一年不到就閃了。他在的幾個月中,就像是一場鬧劇,來這里,旅游觀光罷了,東看看西看看,拋下幾句狠話,刻下”XXX到此一游,就走了。
- 身體太差的人
身體常年有疾者,通常都會性格怪戾,脾氣暴躁,難于跟Team很好相融。
了解更多
想做好定制軟件開發(fā)工作,必須對定制軟件開發(fā)流程管理必須做科學,每一步定位清晰,目標明確,下面對定制軟件開發(fā)工作流進行拆解分析:
需求分析
資深軟件系統分析師對企業(yè)所面臨的管理問題進行分析
需求初步確認
軟件系統分析師初步確認企業(yè)需求,作為合同確認的依據
系統調研
軟件系統分析師對企業(yè)的初步需求進行詳細調研,確定系統界面的設計和運行的流程
需求說明書
將軟件系統分析師對企業(yè)詳細調研文稿化,經雙方討論確認后,開始系統界面設計
界面設計
專業(yè)軟件開發(fā)工程師及美工設計師完成系統界面設計,經用戶確認,開始軟件開發(fā)
開發(fā)及測試
專業(yè)軟件開發(fā)工程師和測試工程師完成系統軟件開發(fā)和測試,強大測試力量和一對一軟件測試體系,確保系統軟件質量
使用培訓
專業(yè)培訓講師對企業(yè)進行軟件基礎知識和系統軟件運作流程全面培訓
初始化試運行
專業(yè)軟件工程師輔導用戶使用系統,協助用戶進行初始化工作;系統初始化完畢,進行試運行階段,測試系統功能的完善性和全面性
正式切換 雙方共同測評系統,確保系統能全面符合用戶需求說明書定義的所有功能,正式切換系統
從項目推動過程來講,可以分為:
1、 項目啟動階段
這一階段主要是為實施做好準備,由項目指導委員會召開項目動員大會,確定項目組成員,確定項目的計劃和目標,建立實施所必須的系統環(huán)境。
2、調研分析階段
項目實施小組在開始系統實施前,先對公司現有的應用系統進行詳細調研和分析,根據企業(yè)的具體情況和信息化管理的特點確定目標業(yè)務流程。對各級用戶進行需求調研。最終以雙方確認的目標作為下一步具體實施的業(yè)務藍圖,并結合軟件產品和技術開發(fā)實際情況,規(guī)劃設計詳細的解決方案,并進行確認,作為設計開發(fā)的基礎。
3、 系統開發(fā)階段
根據調研分析的結果,進行系統設計、編碼、測試,完成軟件的開發(fā)。
4、 項目實施階段
在系統開發(fā)完成之后,軟件實施進入實質性階段。項目實施小組要在項目指導委員會的全力支持和相關部門、人員的協作配合下完成大量的具體工作,比如數據分析與導入、系統設置、人員培訓、規(guī)章制度建立、實施文件歸檔、客戶化修改等。軟件的使用者尤其是關鍵用戶必須在這段時間內掌握相關功能模塊的操作和應用,以便在系統正式運行后能夠獨立地使用軟件。
5、 試運行階段
在經過項目實施階段后,各個模塊及整個系統需要試運行一段時間,以確信軟件能夠在企業(yè)中運行良好,并達到預期效果。同時,根據試運行階段中發(fā)現的問題進行系統調整。
6、 系統切換/正式運行
在試運行階段后,確信軟件可以正式開始運行后,需要進行系統切換,企業(yè)正式切換到新的業(yè)務流程,并在軟件上進行企業(yè)日常業(yè)務處理。至此,軟件的實施已經全部完成,進入后期維護階段。
架構設計
設計的中心思想
1、 以業(yè)務邏輯建模,而不是以數據庫為中心建立系統模型
對信息系統的設計,應緊緊專注于將企業(yè)生產的系統抽象轉化為信息系統的模型,能夠準確、完整、清晰地了解業(yè)務邏輯和業(yè)務流程,并且對業(yè)務的變化作預先考慮,是項目成功的關鍵。開發(fā)人員容易出現的問題是以關系數據庫設計或數據控件的設計代替系統建模,造成的問題是以數據為中心,其結果是系統與數據緊密耦合,難以實現業(yè)務邏輯的變化和擴展。
2、 定制軟件開發(fā)是否滿足了用戶的期望
為了實現這個目標,完善準確的需求收集和需求分析,是項目成功設計的前提。否則無論這個軟件再先進,從用戶角度看,也是失敗的軟件。因此,在設計前期,對需求分析所必須的資源和時間投入,必須有足夠的重視和充分的計劃。
3、 必須要考慮非軟件的因素
任何一個項目都是為了用戶實現其業(yè)務目的,軟件工程也不例外。同時,企業(yè)用戶作為一個實體,其決策收到其行業(yè)特點、用戶、市場、上級主管部門、決策人員的個性、企業(yè)的定位、企業(yè)的現狀、長遠發(fā)展規(guī)劃、歷史因素等綜合情況的影響,因此,在架構設計上,應綜合考慮這些因素。
設計原則
4、 在可能的情況下,按照“統一規(guī)劃、統一架構、統一標準”的原則。
5、 以良好的設計模式來保證系統的先進性、合理性和應用擴展性。
6、 系統的模塊之間應用和交互,盡可能采用松耦合,以實現系統的靈活性和實用性,延長系統的生命周期,保護用戶的投資。
7、 采用以SOA作為體系架構的核心,以保證系統級別和部件級別重復使用和業(yè)務重組,便于用戶長遠的。
8、 系統的開放性要求能軟件實現三個無關性:通訊組件的網絡及協議無關性,數據來源無關性和用戶對流程無關性。
9、 采用有效的需求分析手段,力圖實現準確到位的需求分析,
為良好的人機界面設計提供堅實的基礎。高度重視用戶界面的設計,作到符合不同用戶的實際經驗和使用習慣,減少對信息系統的畏懼感,提高用戶使用信息系統的信心,真正使系統成為提高生產管理效率的有效工具。
10、盡可能采用經過實際運行檢驗的成熟模塊,
從而節(jié)省開發(fā)資源和縮短開發(fā)周期,確保項目按時交付使用。
權限是一個公司信息系統的起點。我從入職以來就一直想要對公司后臺的權限系統進行一個梳理(其實是老板要求的),苦于對后臺和公司業(yè)務還不夠了解,所以想法一直沒能成型。終于,經過幾個月斷斷續(xù)續(xù)的琢磨,我趁最近需求數量不多的時候,把權限的調整方案梳理了出來。
這次梳理公司后臺的系統,我在原有權限系統的基礎上引入了 公司組織架構,形成了 動態(tài)權限管理模式,使得公司的權限管理更加合理化。目前已經把方案提交給開發(fā)進行審核,希望可以最終落實。這里就先向大家匯報一下這幾個月以來梳理權限的成果,給同樣有權限體系設計問題的朋友們一點參考。
要設計權限,首先要對權限 已有的成熟方案有一定認識,其次要 對業(yè)務有深入的分析,才可以在業(yè)務的基礎上有針對性的設計權限模型。
關于權限成熟方案,我查了很多資料,主要了解了一些關于 RBAC(Role-Based Access Control)權限模型的知識。加上在前司對SharePoint的權限分配方案有一定的了解,權限的知識基本就已經足夠了(不夠也沒有更多了,找到一篇從產品的角度解釋RBAC的文章,值得一讀:請點擊查看)
關于業(yè)務需求分析方面,我對公司后臺的權限系統做了梳理。
因為公司對數據的保密要求很高,所以后臺有大量查看項目、查看投資人的細致權限設置,但是 缺乏一致的管理方法,導致經常出現有需求無權限,或調動后權限沒有及時清除的問題。公司后臺主要是按照RBAC設置了權限體系,另外還根據項目服務小組的機制為每個項目單獨設置了權限。后臺RBAC的權限角色中,有部門角色、功能角色、臨時團隊角色等等,相對比較混亂。
現在這套系統面對一些問題:
權限角色太多,分類混亂。有大量臨時建立棄而不用的分組;如果員工調換部門,需要逐個刪除他已有的權限,再逐個賦予新部門的權限;如果部門領導更換,需要對部門內員工的所有成員的審批對象都進行調整。
為了解決上述問題,我嘗試將公司的 組織結構信息引入權限管理的系統。
盡量以部門為單位分配權限,權限角色過多混亂的情況;出現員工部門調動或領導更換,會根據其部門更改自動重新分配權限;對無法按照部門分配的功能采取原有的權限分配模式,通過給不同的員工分配不同的角色實現,保證靈活性。
從上述的思路出發(fā),我定義了新的權限管理需求。新的權限管理分為 部門權限制度和 非部門權限制度兩種:
1、部門權限制度
部門權限分組默認按照組織結構圖。
按照小組設置部門,部門分管理者權限和默認權限兩種,默認權限為部門管理權限的子集。
若組織架構中的小組設置了管理者,則管理者默認擁有管理者權限。除管理者外,所有人加入小組后默認擁有默認權限。
(2)管理者權限包括
部門權限維護類:新建子權限組、默認權限維護、打破權限集成等權限(可以分配給部門領導使用,也可以掌握在超管手中統一分配) 審批類:所有報銷、請假和購票的申請(若小組沒有設置管理者,則小組成員所有審批事宜由上級層級中的管理者負責 ) 職能類:單個部門的全部權限
(2)權限維護類權限詳細介紹
子權限組:部門內可以根據員工設置子權限組,根據子權限組,分配部門權限;默認權限維護:增刪進入部門所默認擁有的權限;打破權限繼承:使某位員工失去默認擁有的權限,為其單獨分配權限。
2、非部門權限制度
組織方法參照原有RBAC權限管理;
超管可以為單個員工或小組開啟非部門權限。
可以為非部門權限設置有效時間段;若員工調轉部門,則所有非部門權限默認失效,需要超管審批以后方可重新生效。
這套規(guī)則可以基本解決原來的權限與部門沒有關聯的問題,以及權限分配混亂難以管理的問題。這僅僅只是產品從業(yè)務角度梳理出來的需求,具體實現還需要和開發(fā)商量以后解決。而且要真正能夠落實實現還需要很漫長的過程。
這次設計方案給我最大的體會就是,設計復雜的功能最有效的手段還是 從具體是使用場景出發(fā),使用場景決定業(yè)務邏輯,業(yè)務邏輯決定功能邏輯。我在最初設計的時候執(zhí)著于尋找成熟的權限管理模式套用,后來發(fā)現這樣生搬硬套不能提升后臺權限分配的效率。在過后的幾個月工作中,我接觸到了不少分配權限的實際問題,比如不知道分權限給誰,或者分配出去的問題沒有辦法管理的問題。這些問題直接啟發(fā)我引入了公司組織架構的概念,也便有了這套方案。
所以, 產品的設計與實現都服務于使用場景,才是真正好的產品,這一點對業(yè)務為導向的后臺產品至關重要。與大家分享,也請大家多提意見。
了解更多
有很多方向,下面給你列幾個常見的:
1. 桌面程序:Java、C++、C#、VB、C均可。
2. 網站服務器端開發(fā):JSP(Java語法)、PHP、ASP(C#語法)、Web App框架等
3. 網站客戶端:HTML、CSS、Javascript、Flash等等,小程序用的便是以javascript為基礎的應用架構
4. 智能手機程序:安卓使用Java,iPhone使用Objective-C
5. 底層、工具開發(fā):C、C++,如:操作系統開發(fā)使用c,android系統底層是用c++。Linux系統等。
6. 多功能腳本程序:Python、Perl、Ruby等等
7. 人工智能:Prolog、PDDL
8. 工業(yè)控制:C、PLC、匯編
9. 通用應用數據交換處理技術:標記語言XML/XPATH/XSLT、JSON、YAML等等
10. 數據庫: SQL/PLSQL
11. 嵌入式開發(fā):java,OBJECTS-C,C、C++
12. 游戲開發(fā):網頁游戲可以用腳本語言javascript,python,后臺可用Java,C#。 但PC上的大型游戲一般需要c++或C了。 特別的是,如果你會涉及IOS平臺,用的是object-c。
13. 企業(yè)級應用開發(fā):Java企業(yè)級標準。桌面的用VB ,VC ,C++, C#
社會在不斷進步,開發(fā)語言也不斷變化中。要跟上變化,就必須不斷地學習。
項目開發(fā)協議書
甲方: 乙方:深圳市南思特科技有限公司
簽訂日期: 年 月 日
上述甲、乙雙方,經友好協商一致,達成以下協議。雙方申明,雙方都已理解并認可了本協議的所有內容,同意承擔各自應承擔的權利和義務,忠實地履行本協議。
第一條 本協議軟件開發(fā)項目的內容、工作進度與安排、付款方式、成果交付和驗收方式等由附件載明。本協議附件為本協議不可分割的一部分,與協議正文具有同等法律效力。
第二條 協議履行期限按照附件規(guī)定的工作進度決定,經雙方協商一致,可以延長該期限。
第三條 甲方應向乙方提供必要的資料和方便條件,協助配合乙方進行軟件的開發(fā)、調試、安裝及實施。
第四條 雙方的基本權利和基本義務
甲方的權利和義務
根據本協議項目的實際需要和乙方的要求提供協助,并提供有關的資料,報表及文檔等,甲方保證所提供的所有資料完整、真實、合法。
按本協議約定支付軟件開發(fā)費用。
甲方有權在軟件驗收之日起一月內,要求乙方對驗收完畢的軟件模塊出現的非人為因素造成的錯誤及故障,進行免費維護。
乙方的權利和義務
按照甲方提供的材料按時完成本協議規(guī)定的軟件開發(fā)工作。
可以根據甲方的要求幫助甲方舉辦培訓和技術咨詢,具體的操作方式及費用雙方另行簽署協議確認。
依協議收取軟件開發(fā)費用。
乙方有義務在軟件驗收之日起一月內,對驗收完畢的軟件模塊出現的非人為因素造成的錯誤及故障,進行免費維護。
第五條 甲方在一月的免費維護期之后,需要乙方對軟件模塊進行維護時,乙方可根據情況酌情優(yōu)惠收取模塊維護費用。
第六條 本協議涉及的相關程序、文件源碼的版權屬乙方所有,但乙方授予甲方使用權。未經乙方許可,甲方不得公布文件源碼,不得復制、傳播、出售或者許可他人使用乙方作品及其程序等。乙方可以在業(yè)務范圍內使用這些作品。雙方當事人應當保守在履行本協議過程中獲知的對方商業(yè)秘密。
第七條 甲方不能按時支付協議費用,導致的工期延誤,其責任由甲方承擔。
第八條 雙方應本著誠實信用的原則履行本協議。任何一方在履行中采用欺詐、脅迫或者暴力的手段,另一方可以解除本協議并有權要求對方賠償損失。任何一方在履行中發(fā)現或者有證據表明對方已經、正在或將要違約,可以終止履行本協議,但應及時通知對方。若對方繼續(xù)不履行、履行不當或者違反本協議,該方可以解除本協議并要求對方賠償損失。
第九條 任意一方欲提前解除本協議,應提前通知對方。甲方提前解除協議的,無權要求乙方返還預付費用并應對乙方遭受的損失承擔賠償責任;乙方無故解除協議的,應雙倍返還上述費用。本協議其他條款對協議的解除另有約定的,從其約定。當訂立本協議所依據的客觀情況發(fā)生重大變化,致使本協議無法履行的,經雙方協商同意,可以變更本協議相關內容或者終止協議的履行。
第十條 本協議簽訂后,經雙方當事人協商一致,可以對本協議有關條款進行變更或者補充但應當以書面形式確認。上述文件一經簽署,即具有法律效力并成為本協議的有效組成部分。雙方當事人對本協議的訂立、解釋、履行、效力等發(fā)生爭議的,應友好協商解決;協商不成的,雙方同意向仲裁委員會提交仲裁并接受其仲裁規(guī)則。本協議經由雙方授權代表簽字,自簽訂之日起生效。 本協議一式兩份,雙方當事人各執(zhí)一份,具有同等法律效力。
甲方:(授權代表簽字) 乙方:(授權代表簽字)
附件:開發(fā)建設項目工作進度與安排、付款方式、成果交付和驗收方式
一、開發(fā)項目內容:
詳見需求清單附件。
二、協議金額及付款方式:
1.本協議金額總計:人民幣 元。
2.付款方式:
本協議簽訂后3日內,甲方向乙方支付協議金額的 50 %,即 元預付款,驗收之后3日內支付協議余款即 元。
3. 轉賬帳號:
開 戶 行: 中國建設銀行股份有限公司深圳寶安支行
戶 名: 深圳市南思特科技有限公司
銀行帳號: 44201538900052515271
三、完成及驗收時間:
完成時間:乙方收到本附件規(guī)定預付款項后 日內開發(fā)完成。
驗收期限:甲方在 年 月 日前完成項目的驗收,并確認。
付款期限:甲方須于 年 月 日前將余款支付給乙方。
四、驗收標準和驗收后修改補充
1.驗收期限為壹星期。
2.驗收合格,甲方應以書面方式簽收,但甲方在乙方交付工作成果后一周內未書面簽收也未提出異議的,視為甲方驗收合格。
3.驗收合格后,如果甲方在使用過程中需要增加軟件模塊或功能,乙方可根據改動情況酌情優(yōu)惠收取模塊增加維護費用。
[本頁以下無正文]
了解更多
同樣的產品,為什么別人賣得動你賣不動?
相信這個問題你一定遇到過,就是一樣的產品,大家都代理了這個產品,你結果是別人賣了幾十上百件,你賣幾件就賣不動了。
什么原因呢?3個原因如下:
1、相信你的人少
可能你的微信里裝了1000人或5000人,可這不代表大家都相信你,或認識你,多數人都沒有和你接觸過,聊過,交流過,別人憑什么在朋友圈看了你的產品就會購買呢?
如果有需求,也一定是找最信得過的人購買,而不是找一個從未交集的人下單,對吧?如果你要買手機,可能上淘寶京東,也可能會找你身邊在賣手機的人購買,為什么呢?哥們,同學,信得過,對吧,而且可能給你成本價或他的進貨價。
你跟他們買,一定是信任,或相信他們。反之,你會跟你不相信的人購買嗎?不會,特別是在微信里毫無關系的人。
2、你不專業(yè)
這個最常見,你本身為上班的,可現在賣起了保鍵品,天天發(fā)保鍵品產品廣告,同事或同學,如果在相信你的前題,又恰好的需求,可能會跟你購買,可如果,你平時對養(yǎng)生一點興趣也有,也不懂,你說,別人會跟你買嗎?因為在他的眼里,你也是個門外漢。
在互聯網上不管是淘寶或微信里成交,都是專業(yè)對需求更容易成交,如果一問三不知,或很含糊,或你根本不懂,你說用戶為啥會跟你買?
平時我們生病,會上醫(yī)院,因為他們的規(guī)模大,設備齊,醫(yī)生都是專業(yè)人士,平時我們生病都是跑醫(yī)院。如果在路邊小賣部有人跟你說,他能給你治病或賣藥給你,你會買嗎?多數不會,為啥?你不是醫(yī)生,你又不專業(yè),你也不是干這個事的人,為什么要相信你呢?
3、你的影響力小
這里直接用一個案例來說明,一個互聯網牛人在網上賣課程,他一天賣幾十萬,同樣的文案給你,換成你的名字,你發(fā)10天半月試下,看你能賣多少出去?
我相信有人能賣出去,可每個人賣的數量一定不一樣,方法一樣,文案一樣,或說你們微信都是5005人,有的人賣幾份,有人賣十幾份,有人賣幾十份,有人賣上百份?什么原因?有的人有影響力,你沒有,所以你賣不動。
例如,你是做平面設計的,大家都是知道,你后來為了賺錢,加入微商代理開始賣產品,在朋友圈刷化妝品,你覺得,有多少人會跟你買?
是不是你復制文案就能賣?是不是你每天刷10次20次朋友圈就能賣?是不是別人能賺到錢你也能?幾單我相信有可能,但是,你要想靠這個養(yǎng)活自己一定很困難?為啥?你根本沒影響力!
那什么是影響力?簡單來說分2種,1種是權力性影響力,你公司老板或國家領導高層在會上說什么話,形式一種討論或交流,或直接影響你的想法或工作方向。
2類是能力類影響力,如歌星明星或一些行業(yè)專家,他們在某個領域里有一定知名度,經常出現在公眾場合或在互聯網,給關注這個領域或行業(yè)的人造成一定影響。如,電商行業(yè)的馬云,他的每一次公開談話,都會有很有中小企業(yè)家或電商人關注,也許這會給他們方向,為什么他們相信馬云?因為他的能力早就獲得大家的公認。
如果,你的能力非常強,經常公開分享或寫文章,在業(yè)界也會有影響力,那你在這個行業(yè)就是一個明星,也會有大量粉絲,這個時候你在賣點啥是很容易的事。
如果,你既不專業(yè),相信你的人又少,也沒有影響力(能力),卻想通過在朋友圈刷出銀子,這是很浪費時間又無價值的事。
這時你可能會說,剛哥,那我想通過朋友圈賺錢,如何解決這3個問題呢?方法非常簡單。學會分享,學會交流,學會針對性的學習,你很快就可以變成專家,提高你的影響力,讓更多人相信你,愿意跟你買單。
什么方法呢?就3個字:寫文章。
說到這個你可能會覺得很難,其實寫文章賣貨比你想的要簡單100倍,寫字是交流,會打字就能寫,會寫就能交流,敢寫就能賺錢,如果你不敢寫,那些可能屬于你的訂單會被那些敢寫的人朋友拿走,這是真的,因為,這件事,每天都在身邊發(fā)生。
了解更多
類型對照表:
Win32 Types
|
CLR Type
|
char, INT8, SBYTE, CHAR
|
System.SByte
|
short, short int, INT16, SHORT
|
System.Int16
|
int, long, long int, INT32, LONG32, BOOL , INT
|
System.Int32
|
__int64, INT64, LONGLONG
|
System.Int64
|
unsigned char, UINT8, UCHAR , BYTE
|
System.Byte
|
unsigned short, UINT16, USHORT, WORD, ATOM, WCHAR , __wchar_t
|
System.UInt16
|
unsigned, unsigned int, UINT32, ULONG32, DWORD32, ULONG, DWORD, UINT
|
System.UInt32
|
unsigned __int64, UINT64, DWORDLONG, ULONGLONG
|
System.UInt64
|
float, FLOAT
|
System.Single
|
double, long double, DOUBLE
|
System.Double
|
c++:HANDLE(void *) ---- c#:System.IntPtr
c++:WORD(unsigned short) ---- c#:System.UInt16
c++:DWORD(unsigned long) ---- c#:System.UInt32
c++:結構體 ---- c#:public struct 結構體{};
c++:結構體 &變量名 ---- c#:ref 結構體 變量名
c++:結構體 **變量名 ---- c#:out
c++:GUID ---- c#:Guid
c++:UINT8 * ---- c#:ref byte
c++:char*/void*(指向一個字符串) ---- c#:string
對于結構體中的指針數組,對應于C#中的IntPtr[]類型,如:
int * a[] -------------- IntPtr[]a
了解更多