精华内容
下载资源
问答
  • 网络应用程序,分为前端和后端两个部分。...我以前过一篇《理解RESTful架构》,探讨如何理解这个概念。 今天,我将介绍RESTful API设计细节,探讨如何设计一套合理、好用API。我主要参考了两篇文章(1,

    网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。

    因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。

    今天,我将介绍RESTful API的设计细节,探讨如何设计一套合理、好用的API。我的主要参考了两篇文章(12)。

    RESTful API

    一、协议

    API与用户的通信协议,总是使用HTTPs协议

    二、域名

    应该尽量将API部署在专用域名之下。

    
    https://api.example.com
    

    如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。

    
    https://example.org/api/
    

    三、版本(Versioning)

    应该将API的版本号放入URL。

    
    https://api.example.com/v1/
    

    另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。Github采用这种做法。

    四、路径(Endpoint)

    路径又称"终点"(endpoint),表示API的具体网址。

    在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。

    举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。

    • https://api.example.com/v1/zoos
    • https://api.example.com/v1/animals
    • https://api.example.com/v1/employees

    五、HTTP动词

    对于资源的具体操作类型,由HTTP动词表示。

    常用的HTTP动词有下面五个(括号里是对应的SQL命令)。

    • GET(SELECT):从服务器取出资源(一项或多项)。
    • POST(CREATE):在服务器新建一个资源。
    • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
    • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
    • DELETE(DELETE):从服务器删除资源。

    还有两个不常用的HTTP动词。

    • HEAD:获取资源的元数据。
    • OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。

    下面是一些例子。

    • GET /zoos:列出所有动物园
    • POST /zoos:新建一个动物园
    • GET /zoos/ID:获取某个指定动物园的信息
    • PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
    • PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
    • DELETE /zoos/ID:删除某个动物园
    • GET /zoos/ID/animals:列出某个指定动物园的所有动物
    • DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

    六、过滤信息(Filtering)

    如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。

    下面是一些常见的参数。

    • ?limit=10:指定返回记录的数量
    • ?offset=10:指定返回记录的开始位置。
    • ?page=2&per_page=100:指定第几页,以及每页的记录数。
    • ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
    • ?animal_type_id=1:指定筛选条件

    参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?zoo_id=ID 的含义是相同的。

    七、状态码(Status Codes)

    服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)。

    • 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
    • 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
    • 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
    • 204 NO CONTENT - [DELETE]:用户删除数据成功。
    • 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
    • 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
    • 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
    • 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
    • 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
    • 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
    • 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
    • 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

    状态码的完全列表参见这里

    八、错误处理(Error handling)

    如果状态码是4xx,就应该向用户返回出错信息。一般来说,返回的信息中将error作为键名,出错信息作为键值即可。

    
    {
        error: "Invalid API key"
    }
    

    九、返回结果

    针对不同操作,服务器向用户返回的结果应该符合以下规范。

    • GET /collection:返回资源对象的列表(数组)
    • GET /collection/resource:返回单个资源对象
    • POST /collection:返回新生成的资源对象
    • PUT /collection/resource:返回完整的资源对象
    • PATCH /collection/resource:返回完整的资源对象
    • DELETE /collection/resource:返回一个空文档

    十、Hypermedia API

    RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。

    比如,当用户向api.example.com的根目录发出请求,会得到这样一个文档。

    
    {"link": {
      "rel":   "collection https://www.example.com/zoos",
      "href":  "https://api.example.com/zoos",
      "title": "List of zoos",
      "type":  "application/vnd.yourformat+json"
    }}
    

    上面代码表示,文档中有一个link属性,用户读取这个属性就知道下一步该调用什么API了。rel表示这个API与当前网址的关系(collection关系,并给出该collection的网址),href表示API的路径,title表示API的标题,type表示返回类型。

    Hypermedia API的设计被称为HATEOAS。Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表。

    
    {
      "current_user_url": "https://api.github.com/user",
      "authorizations_url": "https://api.github.com/authorizations",
      // ...
    }
    

    从上面可以看到,如果想获取当前用户的信息,应该去访问api.github.com/user,然后就得到了下面结果。

    
    {
      "message": "Requires authentication",
      "documentation_url": "https://developer.github.com/v3"
    }
    

    上面代码表示,服务器给出了提示信息,以及文档的网址。

    十一、其他

    (1)API的身份认证应该使用OAuth 2.0框架。

    (2)服务器返回的数据格式,应该尽量使用JSON,避免使用XML。

    (完)

    展开全文
  • 在数据库通过用户名查找对应角色(UserDao.xml) <!--通过用户名查找对应角色--> <select id="findMeauByUsername" resultMap="user2role2Menu"> SELECT * FROM `t_user` WHERE username=#{...

    关于数据库的表图
    在这里插入图片描述

    在数据库中通过用户名查找对应的角色(UserDao.xml)

    <!--通过用户名查找对应的角色-->
        <select id="findMeauByUsername" resultMap="user2role2Menu">
            SELECT * FROM `t_user` WHERE username=#{username}
        </select>
    
    
        <resultMap id="user2role2Menu" type="com.itheima.pojo.User" autoMapping="true">
            <id property="id" column="id"></id>
            <collection property="roles"
                        ofType="com.itheima.pojo.Role"
                        column="id"
                        select="com.itheima.dao.RoleDao.findMenuRoleByUerId">
            </collection>
        </resultMap>
    

    通过角色查找对应的菜单(RoleDao.xml)**

    <!--通过角色查找菜单-->
        <select id="findMenuRoleByUerId" resultMap="role2Menu">
                SELECT * FROM `t_role` t1 JOIN `t_user_role` t2 ON t1.`id`=t2.`role_id` WHERE t2.`user_id`=#{id}
        </select>
    
    
        <resultMap id="role2Menu" type="com.itheima.pojo.Role" autoMapping="true">
            <id property="id" column="id"></id>
            <collection
                    property="menus"
                    ofType="com.itheima.pojo.Menu"
                    column="id"
                    select="com.itheima.dao.MenuDao.findMenuByUsername"
            ></collection>
        </resultMap>
    

    通过角色id查询所有此用户可以看到的一级菜单,再通过角色id查找所有的子集菜单

    <!--通过角色id查询所有此用户可以看到的一级菜单(.parentMenuId IS NULL)就代表是一级菜单-->
        <select id="findMenuByUsername" resultMap="Menu2Menu" parameterType="java.util.Map">
          SELECT t1.id id,t1.path path,t1.name NAME,t1.linkUrl linkUrl ,t1.priority priority,t1.icon icon,t1.parentMenuId parentMenuId,t1.level level,t2.role_id rid FROM `t_menu` t1 JOIN `t_role_menu`  t2 ON t1.id=t2.menu_id
    		WHERE t2.`role_id`=#{id} AND t1.parentMenuId IS NULL
    		GROUP BY t1.name ORDER BY t1.priority
        </select>
    <!--通过 column="{id=id,rid=rid}" 将角色对应的id也传给子菜单,因为用户有可能有一些二级菜单没有权限-->
        <resultMap id="Menu2Menu" type="com.itheima.pojo.Menu" autoMapping="true">
            <id property="id" column="id"></id>
            <collection property="children"
                        ofType="com.itheima.pojo.Menu"
                        column="{id=id,rid=rid}"
                        select="com.itheima.dao.MenuDao.findMenu">
            </collection>
        </resultMap>
    
        <select id="findMenu" resultMap="Menu2Menu" parameterType="java.util.Map">
               SELECT t1.id id,t1.path path,t1.name NAME,t1.linkUrl linkUrl,t1.priority priority,t1.icon icon,t1.parentMenuId parentMenuId,t1.level level,t2.`role_id` rid FROM `t_menu` t1
                    JOIN `t_role_menu` t2 ON t1.id=t2.menu_id
    			    JOIN `t_menu` t3 ON t3.id=t1.parentMenuId
    	            WHERE t2.`role_id`=#{rid} AND t1.parentMenuId =#{id} GROUP BY t1.priority
         </select>
    
    

    前端html页面

    <el-menu>
                        <!-- 一级菜单 -->
                        <template v-for="item in menuList">
                            <el-submenu v-if="item.children && item.children.length" :index="item.path" :key="item.path">
                                <template slot="title"><i class="fa" :class="item.icon"></i><span>{{item.name}}</span>
                                </template>
                                <!-- 二级菜单 -->
                                <template v-for="itemChild in item.children">
                                    <el-submenu v-if="itemChild.children && itemChild.children.length"
                                                :index="itemChild.path" :key="itemChild.path">
                                        <template slot="title"><i :class="itemChild.icon"></i><span> <a
                                                :href="itemChild.linkUrl" target="right">{{itemChild.name}}</a></span>
                                        </template>
    
    
                                        <!--三级菜单-->
                                        <el-menu-item v-for="itemChild_Child in itemChild.children"
                                                      :index="itemChild_Child .path" :key="itemChild_Child.path">
                                            <i :class="itemChild_Child.icon"></i><span slot="title"> <a
                                                :href="itemChild_Child.linkUrl" target="right">{{itemChild_Child.name}}</a></span>
                                        </el-menu-item>
                                    </el-submenu>
    
    
                                    <el-menu-item v-else :index="itemChild.path" :key="itemChild.path"><i
                                            :class="itemChild.icon"></i><span slot="title"><a :href="itemChild.linkUrl"
                                                                                              target="right">{{itemChild.name}}</a></span>
                                    </el-menu-item>
                                </template>
                            </el-submenu>
                            <el-menu-item v-else :index="item.path" :key="item.path"><i :class="item.icon"></i><span
                                    slot="title"><a :href="item.linkUrl" target="right">{{item.name}}</a></span>
                            </el-menu-item>
                        </template>
                    </el-menu>
    

    js代码

    new Vue({
            el: '#app',
            data: {
                username: '',//当前登录用户的用户名
         
                menuList: []/*[
                    {
                        "path": "1",
                        "title": "工作台",
                        "icon":"fa-dashboard",
                        "children": []
                    },
                    {
                        "path": "2",
                        "title": "会员管理",
                        "icon":"fa-user-md",
                        "children": [
                            {
                                "path": "/2-1",
                                "title": "会员档案",
                                "linkUrl":"member.html",
                                "children":[]
                            },
                            {
                                "path": "/2-2",
                                "title": "体检上传",
                                "children":[]
                            },
                            {
                                "path": "/2-3",
                                "title": "会员统计",
                                "linkUrl":"all-item-list.html",
                                "children":[]
                            },
                        ]
                    },
                    {
                        "path": "3",
                        "title": "预约管理",
                        "icon":"fa-tty",
                        "children": [
                            {
                                "path": "/3-1",
                                "title": "预约列表",
                                "linkUrl":"ordersettinglist.html",
                                "children":[]
                            },
                            {
                                "path": "/3-2",
                                "title": "预约设置",
                                "linkUrl":"ordersetting.html",
                                "children":[]
                            },
                            {
                                "path": "/3-3",
                                "title": "套餐管理",
                                "linkUrl":"setmeal.html",
                                "children":[]
                            },
                            {
                                "path": "/3-4",
                                "title": "检查组管理",
                                "linkUrl":"checkgroup.html",
                                "children":[]
                            },
                            {
                                "path": "/3-5",
                                "title": "检查项管理",
                                "linkUrl":"checkitem.html",
                                "children":[]
                            },
                        ]
                    },
                    {
                        "path": "4",
                        "title": "健康评估",
                        "icon":"fa-stethoscope",
                        "children":[
                            {
                                "path": "/4-1",
                                "title": "中医体质辨识",
                                "linkUrl":"all-medical-list.html",
                                "children":[]
                            },
                        ]
                    },
                    {
                        "path": "5",     //菜单项所对应的路由路径
                        "title": "统计分析",     //菜单项名称
                        "icon":"fa-heartbeat",
                        "children":[//是否有子菜单,若没有,则为[]
                            {
                                "path": "/5-1",
                                "title": "会员数量统计",
                                "linkUrl":"report_member.html",
                                "children":[]
                            },
                            {
                                "path": "/5-2",
                                "title": "套餐预约占比统计",
                                "linkUrl":"report_setmeal.html",
                                "children":[]
                            },
                            {
                                "path": "/5-3",
                                "title": "运营数据统计",
                                "linkUrl":"report_business.html",
                                "children":[]
                            },{
                                "path": "/5-4",
                                "title": "后台运营数据统计",
                                "linkUrl": "report_order_visit.html",
                                "children": []
                            },
                            {
                                "path": "/5-5",
                                "title": "总收入",
                                "linkUrl": "report_income.html",
                                "children": []
                            },
                            {
                                "path": "/5-6",
                                "title": "年龄分布",
                                "linkUrl": "report_age.html",
                                "children": []
                            }
                        ]
                    },
                    {
                        "path": "7",
                        "title": "知识库",
                        "icon": "fa-book",
                        "children": [
                            {
                                "path": "/7-1",
                                "title": "食物库",
                                "linkUrl": "food.html",
                                "children": []
                            },
                            {
                                "path": "/7-2",
                                "title": "运动库",
                                "linkUrl": "sports.html",
                                "children": []
                            }
                        ]
                    }
                ]*/
            },
            created() {
                axios.get("/user/getUsername.do")
                    .then((resp) = > {
                    if(resp.data.flag
            )
                {
                    this.username = resp.data.data;
                }
            else
                {
                    this.$message.error(resp.data.message);
                }
            })
                ;
    
    
            },
            mounted() {
                axios.get("/user/findSidebar.do").then((resp) = > {
                    this.menuList = resp.data.data;
            })
                ;
    
            }
    
        });
        $(function () {
            var wd = 200;
            $(".el-main").css('width', $('body').width() - wd + 'px');
        });
    

    Controller层

    
     /**
         * 通过用户名查找对应的侧边栏
         *
         * @return
         */
        @RequestMapping("/findSidebar")
        public Result findSidebar() {
            String username = null;
            User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
            if (user != null) {
                    username = user.getUsername();
            }
            try {
                List<Map> data = userService.findMeauByUsername(username);
                return new Result(true, MessageConstant.GET_USERPERMISSION_SUCCESS, data);
            } catch (Exception e) {
                e.printStackTrace();
                return new Result(false, MessageConstant.GET_USERPERMISSION_FAIL);
            }
    
        }
    
    

    Service层

     @Override
        public List<Map> findMeauByUsername(String username) {
            List<Map> lists = new ArrayList<>();
    
            List<User> mapList = userDao.findMeauByUsername(username);
            for (User user : mapList) {
                Set<Role> roles = user.getRoles();
                for (Role role : roles) {
                    LinkedHashSet<Menu> menus = role.getMenus();
                    for (Menu menu : menus) {
                        Map map = new HashMap();
                        map.put("path", menu.getPath());
                        map.put("title", menu.getName());
                        map.put("icon", menu.getIcon());
                        if (menu.getParentMenuId() == null) {
                            List<Menu> children = menu.getChildren();
                            if (children.size() > 0) {
                                findChildren(map, children);
                            }
                        }
                        lists.add(map);
    
                    }
                }
            }
            return lists;
        }
    //使用递归无限极遍历所有的子菜单,一直到没有子菜单可以查询
        public List findChildren(Map map, List<Menu> children) {
            List clits = new ArrayList<>();
            for (Menu child : children) {
                Map mapc = new HashMap();
                mapc.put("path", child.getPath());
                mapc.put("title", child.getName());
                mapc.put("linkUrl", child.getLinkUrl());
    
                if (child.getChildren().size() != 0) {
                    List m = findChildren(mapc, child.getChildren());
                    mapc.put("children", m);
                }
    
                clits.add(mapc);
            }
            map.put("children", clits);
            return clits;
        }
    
    
    展开全文
  • 1、 练习听力 美国国家公共广播电台 NPR...点击网页左边“ BROWSE TOPICS ”下面“ News ”选项。选择自己有兴趣新闻链接,点开“ Listen Now ”左边红色小喇叭图标,然后反复听该新闻广播。 英国广播公司...

    1、 练习听力
    美国国家公共广播电台 NPR ( 请大家在百度搜索 "npr" ,搜索结果的首条就是 NPR ) 。
    特点:标准美式英语。
    建议:每天花三十分钟左右,反复听英语广播,这是听力过关的必经之路。点击网页中左边“ BROWSE TOPICS ”下面的“ News ”选项。选择自己有兴趣的新闻链接,点开“ Listen Now ”左边的红色小喇叭图标,然后反复听该新闻的广播。
    英国广播公司新闻频道 BBC ( 请大家在百度搜索 "news.bbc" ,搜索结果的首条就是 BBC ) 。
    特点:标准英式英语。
    建议:点击网页中左边选项中的“ Video and Audio ”,再选择视频短片。
    2 、练习阅读
    路透社 ( 请大家在百度搜索 "reuters, news" ,搜索结果的首条就是 路透社网 ) 。
    特点:内容丰富、全面。文章都为标准英语,多阅读对于写作也很有帮助。
    建议:每天花二十分钟左右,选一篇自己有兴趣的文章阅读,以泛读为主。对于生词的发音,可以用韦伯字典网站查发音。对于不懂的词汇和句子,可以用 Google 英译中来翻译。
    3 、词汇记忆
    我要模考网词汇练习 ( 请大家在百度搜索 " 我要模考网 " ,搜索结果的首条就是 我要模考网 ) 。
    特点:在线词汇练习,不枯燥,效率高,在答案页面上还可以听单词发音。
    建议:每天花十分钟左右,选一组词汇,反复练习,直到做到全对为止。对于发音没把握的单词,在对答案时要记得查听一下该单词的发音。放松心情,把练习当作游戏来做可能效率会更高。
    4 、单词发音
    韦伯字典 ( 请大家在百度搜索 " merriam-webster " ,搜索结果的首条就是 韦伯字典网 ) 。
    特点:世界权威词典,发音绝对标准,对于纠正发音很有帮助。
    建议:在网页中间的输入框中输入你要听发音的单词,然后点击“ Search ”,在搜索结果页面上再点击单词旁边的红色小喇叭图标就可以听到发音了。
    5 、翻译
    Google 翻译网 ( 请大家在百度搜索 " Google 翻译网 " ,搜索结果的首条就是 Google 翻译网 ) 。
    特点:方便,实用。单词、句子都可以翻译。
    建议:主要用来翻译单词、词组、和短句。长句的翻译有时候可能不太准确,需要加以分析和判别。


        "普特"觉得不错,四级六级我就是看这个的






    讲一口漂亮流利的外贸英语,外贸英语口语资料集锦
    English spoken language material artistic collection
    好不容易找到的,不顶的朋友真的说不过去了
    这些都是本人收集的一些英语口语方面的的资料,希望对一些正在学习英语的朋友有帮助!以下给出下载地址,全都是免费的,尽管下载都可以了,希望下载的朋友能够回复一下,也就不枉我费尽心思去收集资料了!
    1、20句销售必备英语
    http://www.xingkoo.com/view_info/view_info-4535.html
    3、英语标准音标学习
    http://www.xingkoo.com/view_info/view_info-4563.html
    4、英语表达拒绝的27个经典好句
    http://www.xingkoo.com/view_info/view_info-4564.html
    5、英语口语电子书
    http://www.xingkoo.com/view_info/view_info-4567.html
    6、展会接待常用英语
    http://www.xingkoo.com/view_info/view_info-4569.html
    7、中文最常用600句短语地道英文表达
    http://www.xingkoo.com/view_info/view_info-4570.html
    8、中英对照:亲属称呼英文表达完全汇总
    http://www.xingkoo.com/view_info/view_info-4572.html
    9、1000句最常用英语口语(一)【推荐】
    http://www.xingkoo.com/view_info/view_info-4574.html
    10、1000句最常用英语口语(二)【推荐】
    http://www.xingkoo.com/view_info/view_info-4575.html
    11、中国菜单怎么翻译(全)
    http://www.xingkoo.com/view_info/view_info-4576.html
    12、与“嫦娥一号”有关的词汇
    http://www.xingkoo.com/view_info/view_info-4578.html
    13、English
    900 英语九百句
    http://www.xingkoo.com/view_info/view_info-4536.html
    14、日常口语趣味翻译
    http://www.xingkoo.com/view_info/view_info-4538.html
    15、常用口语100句
    http://www.xingkoo.com/view_info/view_info-4539.html
    16、乘飞机旅行常用语句及词汇汇总
    http://www.xingkoo.com/view_info/view_info-4540.html
    17、出国必备的日常英文用语
    http://www.xingkoo.com/view_info/view_info-4541.html
    18、纯正美语发音100个秘诀
    http://www.xingkoo.com/view_info/view_info-4542.html
    19、国际商务英语学习资料
    http://www.xingkoo.com/view_info/view_info-4543.html
    20、洪恩环境英语初级篇
    http://www.xingkoo.com/view_info/view_info-4544.html
    21、洪恩环境英语中级篇
    http://www.xingkoo.com/view_info/view_info-4545.html
    22、洪恩环境英语中高级篇
    http://www.xingkoo.com/view_info/view_info-4547.html
    23、精选流行口语下载
    http://www.xingkoo.com/view_info/view_info-4548.html
    24、口语第一部分自我介绍荟萃
    http://www.xingkoo.com/view_info/view_info-4549.html
    25、练习口语的六种技巧
    http://www.xingkoo.com/view_info/view_info-4550.html
    26、美国口语俚语
    http://www.xingkoo.com/view_info/view_info-4551.html
    27、美国口语俚语(二)
    http://www.xingkoo.com/view_info/view_info-4552.html
    28、趣味双语美文老外最喜欢的几句马屁话
    http://www.xingkoo.com/view_info/view_info-4554.html
    29、商务交际中闪光的英语口语集锦
    http://www.xingkoo.com/view_info/view_info-4555.html
    30、生活英语:与银行相关的46个术语
    http://www.xingkoo.com/view_info/view_info-4557.html
    31、实用英语:“泡妞”常用英文表达大全
    http://www.xingkoo.com/view_info/view_info-4559.html
    32、谈情说爱专用语
    http://www.xingkoo.com/view_info/view_info-4560.html
    33、无敌社交口语100句速成
    http://www.xingkoo.com/view_info/view_info-4562.html



    以下前20个英语学习网站上都有许多免费的mp3和视频,你可以自己选择一下:
    1.http://www.24xuexi.com/Article/hy/(24小时学习网)
    2.http://www.ywhc.net/article/Index.asp(英文荟萃)(内含口语8000句)
    3.英语听力资源汇总http://www.hjenglish.com/subject/data/enlisten.htm
    4.http://www.hjenglish.com/doc/enlisten/511_1016.htm(英语听力mp3下载)
    5.http://www.4english.cn/(英语之声)
    6.http://www.52en.com/tl/英语听力特区)
    7.http://www.putclub.com/普特英语听力)
    8.http://202.114.65.51/fzjx/dmtjx/english/dxyyjd.htm(大学英语精渎听力下载)
    9.http://www.edgeenglish.com/(爱鸽英语)
    10.http://www.iselong.com/English/c/16index.htm(万千英语族)
    11.http://www.pass-e.com/sort.php?sortid=8(真题网)
    12.http://www.52en.com/(我爱英语网)
    13.http://www.nutshellsoft.com/(英语精华网)
    14.http://www.qjjj.net/(清剑精品资料)
    15.http://www.meno.com.cn/engexam/CET/Index.html(美诺学习网)
    16.大学英语四级考试听力MP3 100篇http://www.hjenglish.com/doc/enlisten/511_1017.htm
    17.http://wxy.studa.com/(学生大考试站)
    18.http://www.eduxue.com/kaoshi/english/a/(教育学习网)
    19.http://www.xy51.com/Article/eng/zszb/sti/(学程无忧)
    20.http://www.gooedu.cn/Article/en/zhuan4zhuan8/zhidao/(goo学网)
    另附:
    1.http://www.aceen.com/list.asp?unid=3398(90个外国英文网站强力推荐)
    2.http://www.meno.com.cn/waiyu/ziliao/200507/989.html(英语学习网站超级大全)
    3.http://www.jasii.com/abcsite.htm(英语学习网站大全)
    4.http://bbs.51legou.com/read.php?tid=12968(二十个学英语的网站)
    5.http://www.11de1.com/classs.php?classid=160外语学习网址大全)
    关于语法:
    1.http://www.pass-e.com/sort.php?sortid=26(真题网)
    2.http://mwww.tingroom.com/flash/(高考英语语法)
    3.http://www.nutshellsoft.com/english/oral/(英语精华网)
    4.http://www.english61.com/(英迪网)
    5.http://www.52en.com/whbm/grammar/index.htm(我爱英语网)
    6.http://www.diandian.net/grammar/index.htm(点点英语——语法大全)
    关于词汇:
    1.http://www.qjjj.net/ (四级词汇mp3)
    2.http://www.iselong.com/english/0000/521.htm(英语单词常见前后缀总结)
    3.http://www.iselong.com/english/0000/930.htm(英语单词词根词典)
    关于音标:
    1.http://blog.hjenglish.com/melodious/category/2060.html(美音听力及发音小技巧)
    2.http://det.tjfsu.edu.cn/learning/oral.htm(英语口语学习资源)
    3.http://203.68.17.29/mis/mono/kevin/EteachWeb/KK%AD%B5%BC%D0/kk.htm 学习网页
    4.http://www.jsxtzx.com/jzf/Soft_Show.asp?SoftID=141 学习软件
    5.http://www.ebigear.com/ResourceHtml/324/(大耳朵英语—— 国际音标与语音 )
    6.http://www.englishabc.com.cn/halom508/Software/Catalog210/355.html(国际音标下载)
    关于翻译网站:
    有两个比较好的多语言在线翻译网:
    http://icifr.lt98.com/fanyi.htm(用左边)
    http://www.123cha.com/tran/
    再给你介绍一个好的中英日韩在线翻译网。这个网站翻译方法是:中文(或英文)翻成日文,由日文再翻成韩文。
    http://www.excite.co.jp/world/korean/
    纯粹的中日文翻译可以利用:
    http://translate.adaffiliate.net/(中文日文在线翻译)
    再提供一个信息,没事的时候多打开看看,一定有许多收获,比如你打开第一个看看!!!
    http://www.fyxx.org/online.asp
    关于流行语翻译的资源:
    1.http://www.jasii.com/trans/zych/(非凡英语——各 专 业 类 别 英 语 翻 译 词 汇 资 源 )
    2.http://www.mornstars.com/Article/ShowSpecial.asp?SpecialID=1词汇分类汇总文章列表)
    3.http://www.iselong.com/chn/index17.htm(万千英语族—— 翻译文化频道)
    再附关于新概念英语的学习网站:
    1.http://www.ebigear.com/ResourceHtml/209/(视频)
    2.http://www.jqzxzx.com/yule/zxsp/200509/310.html(视频)
    3.http://www.fli.com.cn/Article_Show.asp?ArticleID=1035(需先注册—mp3)
    4.http://www.aceen.com/2j.asp?id=168(mp3)
    5.http://lz.qjjj.net/Article/czyy/dxyy/200511/Article_20051121191418.html(mp3)
    6.http://www.nutshellsoft.com/english/newconcept/index.htm(mp3)
    7.http://www.pass-e.com/article.php?articleid=759(mp3)
    8.http://www.wwenglish.com/en/pp/nce/index.htm(辅导学习)
    http://www.gzs.cn/
    http://www.wlck.com/
    http://www.szjiayuan.net/
    http://www.zhangtu.com/
    http://www.jiaolaoshi.net/
    http://www.studycn.cn/
    http://www.cycnet.com/cms/2004/englishcorner/
    这个不错
    www.yingyuok.com
    毫无疑问,选择www.hjbbs.com
    我个人觉得从那里收益非浅
    新青年英语学习网站
    WWW.新青年765.COM
    1.2003年12月英语四级听力录音mp3(含原文)http://www.sailacc.com/english/cet/pastpapers/200505/8974.html
    2.2003年1月英语四级听力录音mp3(含原文)http://www.pinba.net/xuexi/ShowArticle.asp?ArticleID=9660
    3.大学英语四级考试听力MP3 100篇http://www.hjenglish.com/doc/enlisten/511_1017.htm
    4.2004年6月英语四级听力录音mp3(含原文)
    http://www.fanfusheng.net/Article/kszx/djks/slj/200504/Article_762.htm
    5.历年四级听力下载http://www.stuchina.net/cet/listen/200505/1699.html
    6.CET四六级复习全攻略http://cet.hjenglish.com/detail_818.htm
    7.英语听力资源汇总http://www.hjenglish.com/subject/data/enlisten.htm
    8.http://www.ebigear.com/
    9.http://mwww.tingroom.com/lesson/cet4/
    10.http://www.24xuexi.com/Article/hy/(24小时学习网)
    11.http://www.ywhc.net/article/Index.asp(英文荟萃)(内含口语8000句)
    12.http://www.4english.cn/(英语之声)
    13.http://www.52en.com/tl/英语听力特区)
    14.http://www.putclub.com/普特英语听力
    15.http://202.114.65.51/fzjx/dmtjx/english/dxyyjd.htm(大学英语精渎听力下载)
    16.http://www.edgeenglish.com/(爱鸽英语)
    17.http://www.iselong.com/English/c/16index.htm(万千英语族)

    英语网站首推:
    http://www.52en.com/ 我爱英语网首页
    http://www.englishwu.com/main.asp 英语屋首页
    http://league.ysu.edu.cn/yyjlb/article_index.asp 英语俱乐部首页
    http://www.wwenglish.com 旺旺英语首页
    如何学英语,每个人学习的方法不同,只有你自己才最清楚你驾驭语言的能力。这里介绍了一些学英语的网站,希望你每天都有一点进步。
    这绝对是一个值得英语学习者收藏的网站
    http://www.chinadaily.com.cn/english/lt/lt_index.html
    edunet.com
    http://www.edunet.com/elt/
    主题:是一个全方位的学英语作为第二语言的网站
    功能:聊天室,语法讲解,练习,小测试,成语讲解
    特色:特别深入地介绍了语法,听力,沟通技巧等
    对象:esl教师和学英语人士
    《世界日报》北美版-生活美语http://www.chineseworld.com/publish/37_9999.r/r.htm
    主题:生活化和涤没挠⒂锿场?
    功能:分主题讲解英语的实用方法,还有母语非英语人士闹的语言笑话
    特色:灵活生动,有许多实例
    对象:英语基础教好的人士
    万千英语族
    http://www.iselong.com
    主题:资源丰富的英文学习网站
    功能:设计专业的网站,大量的有用资源,含语法、词汇、阅读、听力口语、在线英语广播、在线词典等
    对象:学英语人士
    edunet.com
    http://www.englishtown.com
    主题:是目前网上最有深度的英语学习网站
    功能:非常好的语法讲解,练习,和阅读材料
    特色:正宗英国英语
    对象:学英语人士
    schmooze university
    http://schmooze.hunter.cuny.edu:8888/
    主题:英语学习个网站,可以一对一或分小组进行对话
    功能:在线字典,语言游戏,usenet
    对象:学英语人士
    搜索网站:
    http://www.google.com 全球最强大的搜索网站。在语言学习中,它的功能至少包括:
    搜索新词可用之语境、确认某种搭配或用法是否准确、通过同时输入中文及"english"寻找可能存在的双语介绍、查询文学作品译本、了解某一类事物的相关知识等。
    http://www.yahoo.com 雅虎分类检索。



    Any day will do?哪一天都可以?

      Any messages for me?有我的留言吗?
      Are you by yourself?你一个人来吗?
      All right with you?你没有问题吧?
      Are you free tomorrow?明天有空吗?
      Are you kidding me?你在跟我开玩笑吧?
      As soon as possible!尽可能快!
      Back in a moment!马上回来!
      Believe it or not!信不信由你!
      Better luck next time!下次会更好!
      Boy will be boys本性难移!
      Come to the point!有话直说!
      Do you accept plastic?收不收行用卡?
      Does it keep long?可以保存吗?
      Don't be so fussy!别挑剔了!
      Don't count to me!别指望我!
      Don't fall for it!不要上当!
      Don't get me wrong!你搞错了!
      Don't give me that!少来这套!
      Don't let me down!别让我失望!
      Don't lose your head!别乐昏了头!
      Don't over do it!别做过头了!
      Don't sit there daydreaming!别闲着做白日梦!
      Don't stand on ceremony!别太拘束!
      Drop me a line!要写信给我!
      Easy come easy go!来得容易去得也快!
      First come first served!先到先得!
      Get a move on!快点吧!
      Get off my back!不要嘲笑我!
      Give him the works!给他点教训!
      Give me a break!饶了我吧!
      Give me a hand!帮我一个忙!
      Great minds think alike!英雄所见略同!
      I'll treat you to lunch.午餐我请你!
      In one ear,out the other ear.一耳进,一耳出!
      I'm spaced-out!我开小差了!
      I beg your pardon!请你再说一遍!
      I can't afford that!我付不起!
      I can't follow you!我不懂你说的!
      I can't help it!我情不自禁!
      I couldn't reach him!我联络不上他!
      I cross my heart!我发誓是真的!
        I don't mean it!我不是故意的!
      I feel very miserable!我好沮丧!
      I have no choice!我别无选择了!
      I watch my money!视财如命!
      I'll be in touch!保持联络!
      I'll check it out!我去看看!
      I'll show you around!我带你四处逛逛!
      I'll see to it!我会留意的!
      I'm crazy for you!我为你疯狂!
      You make me jump!你下了我一跳!
      Make up your mind.作个决定吧!
      Make yourself at home!就当在家一样!
      My mouth is watering!我要流口水了!
      Never heard of it!没听说过!
      Nice talking to you!很高兴和你聊天!
      No doubt about it!勿庸置疑!
      No pain no gain!不经一事,不长一智!
      None of your business!要你管?
      There is nothing on your business!这没你的事!
      Now you are really talking!说得对!
      Please don't rush me!请不要吹促我!
      Please keep me informed!请一定要通知我!
      She looks blue today.她今天很忧郁!
      She is under the weather.她心情不好!
      So far,so good.过得去。
      Speaking of the devil!一说曹操,曹操就到!
      Stay away from me!离我远一点!
      Stay on the ball!集中注意力!
      That makes no difference.不都一样吗?
      That's a touchy issue!这是个辣手得问题!
      That's always the case!习以为常!
      That's going too far!这太离谱了!
      That's more like that!这才象话嘛!
      The answer is zero!白忙了!
      The dice is cast!已成定局了!
      The same as usual!一如既往!
      The walls have ears!隔墙有耳!
      There you go again!你又来了!
      Time is running out!没有时间了!
      We better get going!最好马上就走

    转载于:https://www.cnblogs.com/arvintang/p/5572548.html

    展开全文
  • 从中了解到,这家游戏公司,使用自己的中台能力,创造了极高人均产值! 从那时候起,不时就看到大厂关于中台的布局。 大中台,小前台时代来了 不得不承认,阿里在国内巨大影响力,自从阿里宣布了,”大中台,小...

    我知道中台是啥了

    大概是2019年,我在一个苦逼的血汗工厂为本地大厂做着外包项目。快乐的午饭吃饭时间刷到了,一篇文章,写的内容大概是,腾讯收购supercell,然后就是对该公司的介绍。
    从中了解到,这家游戏公司,使用自己的中台能力,创造了极高的人均产值!
    从那时候起,不时就看到大厂关于中台的布局。

    大中台,小前台时代来了

    不得不承认,阿里在国内的巨大影响力,自从阿里宣布了,”大中台,小前台”战略开始,国内一时对此无比着迷。
    那时的我觉得中台化简直是解决一切问题的方案。
    各种业务中台,各种数据中台各司其职,在我脑海中似乎有一个新的大陆,那里真美!

    而我与中台无缘

    身处在北方二线城市,也感受到了中台概念的威力。我有幸在一家软件外包公司,见识到了些当地有规模的客户。中台的概念已经进入到他们的脑子。以至于我的朋友圈也有甲方爸爸转发关于中台的种种思路,方案。看得我是一个无法自拔。难辨真伪,良莠不齐。
    不禁开始思考究竟何为中台?
    并且更加让人难以置信的事情是,有些公司竟然借由中台概念起飞了……并且是帮传统企业转型上中台。你细品……总觉得就是外包公司给自己披了一层中台皮,还是在干外包的活。哦,有点不一样,上中台,很贵的。

    中台在企业眼中的美感

    从supercell的成功案例来看,作为一家游戏公司,将自己的产品能力沉淀下来,可以快速支持新的游戏。
    当把这个思路引入到国内后,想当然的进入到各种庞大的业务系统。
    中台如何成为服务于前台的服务平台呢?
    将诸如:用户,会员,积分,商品,支付等平台能力沉淀下来,形成一个较为通用的服务能力。
    这样,当新的系统需要其中的一些能力时,便可以借助大中台的能力,之前的自建开发,转而变成了与中台能力的打通,说白了,就是接口对接。
    想到这里,企业主做梦都梦笑醒。无疑,这简直太棒了👏👏👏
    我甚至可以很简单的在组合出另外一个新的系统,快哉快哉

    我身边也有了中台同事

    终于2020年了,我身边的本地大厂们,也布局中台有了一段时间。我身边也有乙方中台同事了!
    中台服务商,打着让企业上云,上中台能力的旗号,做着动辄上千万的外包订单。
    我们则帮助企业对接中台能力来完成他们的业务。
    甲方,只要干下这一票,就是为企业打造了中台环境,迈出企业转型的一大步。名留企业史。buzh
    乙方,承接中台搭建,拿到了大单。
    丙方,就我们这种本地外包,依然做着廉价外包。
    那这种中台,究竟是为了业绩,为了订单,还是为了企业的能力沉淀和积累与发展呢?

    我差点忘了中台的初心

    阿里基于中台,如果快速衍生出盒马鲜生这种产品。是基于他自身的电商属性,是对电商业务的沉淀。那我对接的中台,就是硬上!

    在与中台同事日日夜夜的联调,修改中,业务沟通中,我沉默了。
    一个不属于企业内的开发团队,咋就能帮企业沉淀业务能力呢?一个企业的中台,难道就是找个之前毫无瓜葛供应商就可以搭建的吗?
    你也可以理解为我一个底层程序员对工作不顺利的抱怨。
    似乎在北方这种大环境下,已经无所谓应不应该,正不正确,完成领导安排的任务,让领导有报告可做,有东西能讲,才是我们这个码农的生存现状。
    请大家保持初心,不要被环境冲昏。
    对与错,很重要。哪怕没人在乎。

    再说中台的利弊

    我是一名底层开发,一个技术的角度来说。
    我认为中台适用于两种情况

    1. 通用且业务不会频繁发生变动的基础能力。如,用户服务
    2. 对前台调用(这里指的是系统)可黑盒的能力,即使中台内部发生变动,也不影响点用方。如,支付能力(发起支付,支付结果,支付查询,退款),增加支付方式,不会影响前台服务点用

    如果,某个中台能力,掺杂了定制化,那势必已经变得不同用,也无法被其他前台系统复用。
    所以,一旦中台能力没有达到纯粹的沉淀,就会对前台系统造成影响。
    因为前台一定变成了一个依赖中台服务的服务。一旦前台系统的定制业务发生变化,则有可能需要与中台沟通,中台也需要升级改业务,以配合前台的频道变动,事实证明,定制业务往往最容易发生变化。
    这其中的沟通,开发成本,细思极恐。

    最后

    中台,说他是营销概念也无可厚非。他为聪明的人带来了乘风而起的理念。
    中台,他是企业能力的沉淀和孵化的平台。

    中台,他不属于我。
    而我希望,有一天,我属于他。

    展开全文
  • 业务中台需要明确自己边界:中台往往是对某种能力的抽象,由于服务于不同业务,必然,不同服务在某些点有不同需求。有些可以是由中台同学实现,而有些则需要允许业务灵活定制。这时候需要中台设计者做好足够...
  • 多看1. 看手机朋友圈孙老师发了一条微信:“我要把你打扮成一座花园”,配图是一个阳台。...后来,我们为女装品牌ESBACK伊思君凯做形象升级,在店铺植入了装置性功能区:ESBACK YARD(伊小姐后花园)。她...
  • 实际生产环境,如果对mysql数据库读和都在一数据库服务器操作,无论是在安全性、高可用性,还是高并发等各个方面都是不能满足实际需求。因此,一般通过主从复制方式来同步数据,再通过读写分离来...
  • 但在实际生产环境,由单Mysql作为独立数据库是完全不能满足实际需求,无论是在安全性,高可用性以及高并发等各个方面。 因此,一般来说都是通过 主从复制(Master-Slave)方式来同步数据,再通过读写...
  • 什么是数据中台

    万次阅读 2019-09-12 10:54:21
    导读:本文将阐述:为什么要建设数据中台,什么是数据中台,数据中台具备什么样的能力。采用什么技术来实现 一、为什么要建设数据中台 因为在当今互联网时代,用户才是商业战场的中心,为了快速响应用户的需求,...
  • 一款同样优秀前端 UI 组件库,其基于...值得一说是,这个库作者是一位很有个性女程序员,文本能力也超强,官网上文档得清楚易懂,十分容易上手。HeyUI 首页截图简单配置实现全局主题定制特点基于 Vue...
  • 在实际生产环境,如果对mysql数据库读和都在一数据库服务器操作,无论是在安全性、高可用性,还是高并发等各个方面都是不能满足实际需求。因此,一般通过主从复制方式来同步数据,再通过读写分离来...
  • 去年过一篇文章谈了数据中台的初步评估方法。今天再谈谈落地细节,即如何打造企业数据中台的评估指标体系,一方面指导企业自身数据中台建设,另一方面为企业间数据中台的比较提供一个参考标准。 1、行业实践...
  • 值得一说是,这个库作者是一位很有个性女程序员,文本能力也超强,官网上文档得清楚易懂,十分容易上手。 特点 基于 Vue2.0 数据模型,真正数据驱动来调用组件; 独特全局配置模式,提供脚手架...
  • 一款同样优秀前端 UI 组件库,其基于HeyUI...值得一说是,这个库作者是一位很有个性女程序员,文本能力也超强,官网上文档得清楚易懂,十分容易上手。HeyUI 首页截图简单配置实现全局主题定制特点基于...
  • 本文概述 HTML 5的文件系统API与Web Workers API是两个非常重要的API。...而Web Workers API的作用是使Web应用程序具有创建后台线程的能力,能够在Web应用程序使用多线程处理技术。然而,如果将这两者结合起来
  • 中台微服务了,那前端呢?

    千次阅读 2019-04-04 16:30:00
    中台建设完成后,通过微服务实现了后端应用解耦,提高了中台应用弹性伸缩能力。但由于微服务拆分,也会导致项目团队和服务碎片化,给前端项目集成带来一定复杂度。微服务架构通常采用前后端分离方式,中台...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 906
精华内容 362
关键字:

中台写的能力